Skip to content

Commit afe73a9

Browse files
authored
dsa: capture error (#941)
1 parent 3dff944 commit afe73a9

File tree

3 files changed

+16
-25
lines changed

3 files changed

+16
-25
lines changed

Cargo.lock

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

ecdsa/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ elliptic-curve = { version = "0.14.0-rc.1", default-features = false, features =
2121
signature = { version = "=3.0.0-pre", default-features = false, features = ["rand_core"] }
2222

2323
# optional dependencies
24-
der = { version = "0.8.0-rc.1", optional = true }
24+
der = { version = "0.8.0-rc.2", optional = true }
2525
digest = { version = "=0.11.0-pre.10", optional = true, default-features = false, features = ["oid"] }
2626
rfc6979 = { version = "=0.5.0-pre.4", optional = true }
2727
serdect = { version = "0.3", optional = true, default-features = false, features = ["alloc"] }

ecdsa/src/der.rs

+9-18
Original file line numberDiff line numberDiff line change
@@ -420,31 +420,22 @@ mod tests {
420420
#[test]
421421
fn test_asn1_too_short_signature() {
422422
assert!(Signature::from_der(&[]).is_err());
423-
assert!(Signature::from_der(&[der::Tag::Sequence.into()]).is_err());
424-
assert!(Signature::from_der(&[der::Tag::Sequence.into(), 0x00]).is_err());
425-
assert!(
426-
Signature::from_der(&[
427-
der::Tag::Sequence.into(),
428-
0x03,
429-
der::Tag::Integer.into(),
430-
0x01,
431-
0x01
432-
])
433-
.is_err()
434-
);
423+
assert!(Signature::from_der(&[0x30]).is_err());
424+
assert!(Signature::from_der(&[0x30, 0x00]).is_err());
425+
assert!(Signature::from_der(&[0x30, 0x03, 0x02, 0x01, 0x01]).is_err());
435426
}
436427

437428
#[test]
438429
fn test_asn1_non_der_signature() {
439430
// A minimal 8-byte ASN.1 signature parses OK.
440431
assert!(
441432
Signature::from_der(&[
442-
der::Tag::Sequence.into(),
433+
0x30, // Tag::Sequence,
443434
0x06, // length of below
444-
der::Tag::Integer.into(),
435+
0x02, // Tag::Integer,
445436
0x01, // length of value
446437
0x01, // value=1
447-
der::Tag::Integer.into(),
438+
0x02, // Tag::Integer,
448439
0x01, // length of value
449440
0x01, // value=1
450441
])
@@ -456,13 +447,13 @@ mod tests {
456447
// https://github.com/google/wycheproof/blob/2196000605e4/testvectors/ecdsa_secp256k1_sha256_test.json#L57-L66
457448
assert!(
458449
Signature::from_der(&[
459-
der::Tag::Sequence.into(),
450+
0x30, // Tag::Sequence
460451
0x81, // extended length: 1 length byte to come
461452
0x06, // length of below
462-
der::Tag::Integer.into(),
453+
0x02, // Tag::Integer
463454
0x01, // length of value
464455
0x01, // value=1
465-
der::Tag::Integer.into(),
456+
0x02, // Tag::Integer
466457
0x01, // length of value
467458
0x01, // value=1
468459
])

0 commit comments

Comments
 (0)