Skip to content

Commit 15abbd4

Browse files
authored
fix(crypto): correctly encode EC signature by padding nums to 32 (#143)
2 parents 13bf5c4 + 7f6edcd commit 15abbd4

File tree

5 files changed

+26
-77
lines changed

5 files changed

+26
-77
lines changed

.config/nextest.toml

Lines changed: 0 additions & 3 deletions
This file was deleted.

.github/workflows/check.yml

Lines changed: 12 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,10 @@ jobs:
4343
- uses: actions/checkout@v4
4444
with:
4545
submodules: true
46-
- name: cargo cache
47-
uses: actions/cache@v4
48-
continue-on-error: false
46+
- name: rust cache
47+
uses: Swatinem/rust-cache@v2
4948
with:
50-
path: |
51-
~/.cargo/registry
52-
~/.cargo/git
53-
target/
54-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
55-
restore-keys: ${{ runner.os }}-cargo-
49+
shared-key: "jose" # we share cache across jobs
5650
- name: Install ${{ matrix.toolchain }}
5751
uses: dtolnay/rust-toolchain@master
5852
with:
@@ -69,16 +63,10 @@ jobs:
6963
- uses: actions/checkout@v4
7064
with:
7165
submodules: true
72-
- name: cargo cache
73-
uses: actions/cache@v4
74-
continue-on-error: false
66+
- name: rust cache
67+
uses: Swatinem/rust-cache@v2
7568
with:
76-
path: |
77-
~/.cargo/registry
78-
~/.cargo/git
79-
target/
80-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
81-
restore-keys: ${{ runner.os }}-cargo-
69+
shared-key: "jose" # we share cache across jobs
8270
- name: Install nightly
8371
uses: dtolnay/rust-toolchain@nightly
8472
- name: cargo doc
@@ -111,16 +99,10 @@ jobs:
11199
- uses: actions/checkout@v4
112100
with:
113101
submodules: true
114-
- name: cargo cache
115-
uses: actions/cache@v4
116-
continue-on-error: false
102+
- name: rust cache
103+
uses: Swatinem/rust-cache@v2
117104
with:
118-
path: |
119-
~/.cargo/registry
120-
~/.cargo/git
121-
target/
122-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
123-
restore-keys: ${{ runner.os }}-cargo-
105+
shared-key: "jose" # we share cache across jobs
124106
- name: Install stable
125107
uses: dtolnay/rust-toolchain@stable
126108
- name: cargo install cargo-hack
@@ -148,16 +130,10 @@ jobs:
148130
- uses: actions/checkout@v4
149131
with:
150132
submodules: true
151-
- name: cargo cache
152-
uses: actions/cache@v4
153-
continue-on-error: false
133+
- name: rust cache
134+
uses: Swatinem/rust-cache@v2
154135
with:
155-
path: |
156-
~/.cargo/registry
157-
~/.cargo/git
158-
target/
159-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
160-
restore-keys: ${{ runner.os }}-cargo-
136+
shared-key: "jose" # we share cache across jobs
161137
- name: Install ${{ matrix.msrv }}
162138
uses: dtolnay/rust-toolchain@master
163139
with:

.github/workflows/scheduled.yml

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,16 +21,10 @@ jobs:
2121
- uses: actions/checkout@v4
2222
with:
2323
submodules: true
24-
- name: cargo cache
25-
uses: actions/cache@v4
26-
continue-on-error: false
24+
- name: rust cache
25+
uses: Swatinem/rust-cache@v2
2726
with:
28-
path: |
29-
~/.cargo/registry
30-
~/.cargo/git
31-
target/
32-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
33-
restore-keys: ${{ runner.os }}-cargo-
27+
shared-key: "jose" # we share cache across jobs
3428
- name: Install nightly
3529
uses: dtolnay/rust-toolchain@nightly
3630
- name: cargo install cargo-hack

.github/workflows/test.yml

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,10 @@ jobs:
2424
- uses: actions/checkout@v4
2525
with:
2626
submodules: true
27-
- name: cargo cache
28-
uses: actions/cache@v4
29-
continue-on-error: false
27+
- name: rust cache
28+
uses: Swatinem/rust-cache@v2
3029
with:
31-
path: |
32-
~/.cargo/registry
33-
~/.cargo/git
34-
target/
35-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
36-
restore-keys: ${{ runner.os }}-cargo-
30+
shared-key: "jose" # we share cache across jobs
3731
- name: Install ${{ matrix.toolchain }}
3832
uses: dtolnay/rust-toolchain@master
3933
with:
@@ -101,16 +95,10 @@ jobs:
10195
- uses: actions/checkout@v4
10296
with:
10397
submodules: true
104-
- name: cargo cache
105-
uses: actions/cache@v4
106-
continue-on-error: false
98+
- name: rust cache
99+
uses: Swatinem/rust-cache@v2
107100
with:
108-
path: |
109-
~/.cargo/registry
110-
~/.cargo/git
111-
target/
112-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
113-
restore-keys: ${{ runner.os }}-cargo-
101+
shared-key: "jose" # we share cache across jobs
114102
- name: Install stable
115103
uses: dtolnay/rust-toolchain@stable
116104
- name: cargo generate-lockfile
@@ -129,16 +117,10 @@ jobs:
129117
- uses: actions/checkout@v4
130118
with:
131119
submodules: true
132-
- name: cargo cache
133-
uses: actions/cache@v4
134-
continue-on-error: false
120+
- name: rust cache
121+
uses: Swatinem/rust-cache@v2
135122
with:
136-
path: |
137-
~/.cargo/registry
138-
~/.cargo/git
139-
target/
140-
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
141-
restore-keys: ${{ runner.os }}-cargo-
123+
shared-key: "jose" # we share cache across jobs
142124
- name: Install stable
143125
uses: dtolnay/rust-toolchain@stable
144126
with:

src/crypto/backend/openssl/ec.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,8 @@ impl ec::PrivateKey for PrivateKey {
151151
// the returned signature is in DER format, we need to convert it according
152152
// to Section 3.4 of RFC 7518
153153
let signature = EcdsaSig::from_der(&der_sig)?;
154-
let r = signature.r().to_vec();
155-
let s = signature.s().to_vec();
154+
let r = signature.r().to_vec_padded(32)?;
155+
let s = signature.s().to_vec_padded(32)?;
156156

157157
let mut sig = Vec::with_capacity(r.len() + s.len());
158158
sig.extend_from_slice(&r);

0 commit comments

Comments
 (0)