diff --git a/cryptography/src/ed25519/mod.rs b/cryptography/src/ed25519/mod.rs index 0509302a5e1..74c0583c944 100644 --- a/cryptography/src/ed25519/mod.rs +++ b/cryptography/src/ed25519/mod.rs @@ -29,5 +29,9 @@ pub mod certificate; pub(in crate::ed25519) mod core; mod scheme; +#[cfg(test)] +mod wycheproof; +#[cfg(test)] +mod wycheproof_vectors; pub use scheme::{Batch, PrivateKey, PublicKey, Signature}; diff --git a/cryptography/src/ed25519/wycheproof.rs b/cryptography/src/ed25519/wycheproof.rs new file mode 100644 index 00000000000..aac89de004d --- /dev/null +++ b/cryptography/src/ed25519/wycheproof.rs @@ -0,0 +1,186 @@ +//! Project Wycheproof verification tests for Ed25519. +//! +//! These tests load real Wycheproof test vectors (not random keys generated at +//! runtime) and feed them through the same verification path used in +//! production: [`crate::ed25519::core::VerificationKey::verify`]. The raw +//! `core` entry point is intentional; the [`crate::Verifier`] surface prefixes +//! messages with a namespace via `union_unique`, which would invalidate every +//! upstream vector. +//! +//! # Source +//! +//! Vectors come from `testvectors_v1/ed25519_test.json` in +//! [Project Wycheproof](https://github.com/C2SP/wycheproof), pinned at commit +//! `6d9d6de30f02e229dfc160323722c3ddac866181`: +//! +//! +//! +//! The JSON is vendored at +//! `cryptography/test_vectors/wycheproof/ed25519_test.json` and preprocessed +//! offline into the `VECTORS` constant in +//! [`super::wycheproof_vectors`]. Offline preprocessing keeps the crate free of +//! a JSON parser dependency (per `CONTRIBUTING.md`); to refresh the vectors, +//! run `python3 cryptography/test_vectors/wycheproof/regenerate.py`. +//! +//! # ZIP215 deviations from strict RFC 8032 +//! +//! This crate implements [ZIP215](https://zips.z.cash/zip-0215), which is +//! deliberately more permissive than the strict RFC 8032 verifier Wycheproof +//! targets: +//! +//! * Non-canonical encodings of `A_bytes` and `R_bytes` MUST be accepted as +//! long as they decompress to a valid Edwards point. +//! * `s_bytes` MUST be canonical (`s < l`). +//! * The cofactored equation `[8][s]B = [8]R + [8][k]A` is used. +//! +//! Consequently, some vectors that Wycheproof labels `invalid` (typically those +//! exercising non-canonical encodings or small-order / low-order subgroup +//! points) are legitimately accepted by a correct ZIP215 implementation. Any +//! such vector must appear in [`ZIP215_DEVIATIONS`] with a justification. +//! +//! At the pinned commit, an empirical run found no vectors that require an +//! exception, so `ZIP215_DEVIATIONS` is currently empty. The framework is +//! retained so that future upstream additions can be audited explicitly rather +//! than silently masked. + +use super::{ + core::{Signature, VerificationKey}, + wycheproof_vectors::{NUMBER_OF_TESTS, VECTORS}, +}; +use core::convert::TryFrom; + +/// Expected verdict for a single Wycheproof vector. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub(super) enum Verdict { + /// Strict RFC 8032 verifiers (and ZIP215) must accept. + Valid, + /// Strict RFC 8032 verifiers must reject. ZIP215 verifiers must also + /// reject unless the `tcId` appears in [`ZIP215_DEVIATIONS`]. + Invalid, +} + +/// A single Wycheproof Ed25519 test vector. +/// +/// Bytes are stored already-decoded from the upstream hex strings so the test +/// loop performs no parsing of its own. +#[derive(Debug)] +pub(super) struct Vector { + pub tc_id: u32, + pub comment: &'static str, + pub public_key: &'static [u8], + pub msg: &'static [u8], + pub sig: &'static [u8], + pub result: Verdict, + pub flags: &'static [&'static str], +} + +/// Wycheproof `tcId`s where ZIP215 deliberately diverges from the strict +/// RFC 8032 verdict (Wycheproof says `invalid`, ZIP215 accepts). +/// +/// Each entry must cite the deviation class so reviewers can audit it: +/// +/// * "non-canonical A": `A_bytes` decompresses to a valid point but is not the +/// canonical encoding. +/// * "non-canonical R": same, for the signature's `R_bytes`. +/// * "low-order / small-subgroup point": `A` or `R` lies in a non-prime-order +/// subgroup; ZIP215's cofactored equation `[8][s]B = [8]R + [8][k]A` still +/// holds. +/// +/// At the pinned upstream commit this list is empty. Adding an entry should +/// be a deliberate auditing step paired with a comment justifying the class. +const ZIP215_DEVIATIONS: &[(u32, &str)] = &[]; + +fn is_deviation(tc_id: u32) -> Option<&'static str> { + ZIP215_DEVIATIONS + .iter() + .find(|(id, _)| *id == tc_id) + .map(|(_, reason)| *reason) +} + +/// Run a Wycheproof vector through the production verifier and return whether +/// it was accepted. Vectors whose key or signature have the wrong on-wire +/// length are reported as rejected without invoking `verify`; both RFC 8032 +/// and ZIP215 reject these at the parse step. +fn verify_vector(v: &Vector) -> bool { + let vk = match <[u8; 32]>::try_from(v.public_key) { + Ok(bytes) => match VerificationKey::try_from(bytes) { + Ok(vk) => vk, + Err(_) => return false, + }, + Err(_) => return false, + }; + let sig = match <[u8; 64]>::try_from(v.sig) { + Ok(bytes) => Signature::from(bytes), + Err(_) => return false, + }; + vk.verify(&sig, v.msg).is_ok() +} + +/// Every Wycheproof vector labelled `valid` must verify under ZIP215. +/// ZIP215 is a superset of RFC 8032 with respect to acceptance, so any failure +/// here is a real bug. +#[test] +fn wycheproof_valid_vectors_verify() { + let mut failures = Vec::new(); + for v in VECTORS.iter().filter(|v| v.result == Verdict::Valid) { + if !verify_vector(v) { + failures.push(format!( + "tcId={} ({}) flags={:?} unexpectedly rejected", + v.tc_id, v.comment, v.flags + )); + } + } + assert!( + failures.is_empty(), + "valid-vector failures:\n {}", + failures.join("\n ") + ); +} + +/// Every Wycheproof vector labelled `invalid` must be rejected, except for +/// entries explicitly carved out in [`ZIP215_DEVIATIONS`] (currently none at +/// the pinned commit). +#[test] +fn wycheproof_invalid_vectors_rejected() { + let mut unexpected_accepts = Vec::new(); + let mut stale_deviations = Vec::new(); + for v in VECTORS.iter().filter(|v| v.result == Verdict::Invalid) { + let accepted = verify_vector(v); + match (accepted, is_deviation(v.tc_id)) { + (false, None) => {} + (true, Some(_)) => {} + (true, None) => unexpected_accepts.push(format!( + "tcId={} ({}) flags={:?} accepted but Wycheproof labels invalid; \ + either fix the verifier or add to ZIP215_DEVIATIONS with a class citation", + v.tc_id, v.comment, v.flags + )), + (false, Some(reason)) => stale_deviations.push(format!( + "tcId={} listed in ZIP215_DEVIATIONS ({}) but the verifier now rejects it; \ + remove the stale entry", + v.tc_id, reason + )), + } + } + assert!( + unexpected_accepts.is_empty() && stale_deviations.is_empty(), + "invalid-vector mismatches:\n unexpected accepts:\n {}\n stale deviations:\n {}", + unexpected_accepts.join("\n "), + stale_deviations.join("\n "), + ); +} + +/// Guard against accidental truncation of the auto-generated vector array. +/// `NUMBER_OF_TESTS` is the `numberOfTests` field from upstream at the pinned +/// commit; if these diverge, the regeneration script has produced a partial +/// file. +#[test] +fn vector_count_matches_upstream() { + assert_eq!( + VECTORS.len(), + NUMBER_OF_TESTS, + "generated VECTORS length ({}) does not match upstream numberOfTests ({}); \ + re-run cryptography/test_vectors/wycheproof/regenerate.py", + VECTORS.len(), + NUMBER_OF_TESTS, + ); +} diff --git a/cryptography/src/ed25519/wycheproof_vectors.rs b/cryptography/src/ed25519/wycheproof_vectors.rs new file mode 100644 index 00000000000..53a66a269fd --- /dev/null +++ b/cryptography/src/ed25519/wycheproof_vectors.rs @@ -0,0 +1,3184 @@ +// This file is auto-generated. Do not edit by hand. +// +// Source: Project Wycheproof, pinned at commit +// 6d9d6de30f02e229dfc160323722c3ddac866181 +// File: testvectors_v1/ed25519_test.json +// Permalink: https://github.com/C2SP/wycheproof/blob/6d9d6de30f02e229dfc160323722c3ddac866181/testvectors_v1/ed25519_test.json +// +// To regenerate, run: +// python3 cryptography/test_vectors/wycheproof/regenerate.py + +use super::wycheproof::{Vector, Verdict}; + +/// `numberOfTests` field reported by the upstream JSON at the pinned commit. +/// Used by `vector_count_matches_upstream` to guard against accidental +/// truncation of the generated array below. +pub(super) const NUMBER_OF_TESTS: usize = 150; + +pub(super) const VECTORS: &[Vector] = &[ + Vector { + tc_id: 1, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[], + sig: &[ + 0xd4, 0xfb, 0xdb, 0x52, 0xbf, 0xa7, 0x26, 0xb4, 0x4d, 0x17, 0x86, 0xa8, 0xc0, 0xd1, + 0x71, 0xc3, 0xe6, 0x2c, 0xa8, 0x3c, 0x9e, 0x5b, 0xbe, 0x63, 0xde, 0x0b, 0xb2, 0x48, + 0x3f, 0x8f, 0xd6, 0xcc, 0x14, 0x29, 0xab, 0x72, 0xca, 0xfc, 0x41, 0xab, 0x56, 0xaf, + 0x02, 0xff, 0x8f, 0xcc, 0x43, 0xb9, 0x9b, 0xfe, 0x4c, 0x7a, 0xe9, 0x40, 0xf6, 0x0f, + 0x38, 0xeb, 0xaa, 0x9d, 0x31, 0x1c, 0x40, 0x07, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 2, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x78], + sig: &[ + 0xd8, 0x07, 0x37, 0x35, 0x8e, 0xde, 0x54, 0x8a, 0xcb, 0x17, 0x3e, 0xf7, 0xe0, 0x39, + 0x9f, 0x83, 0x39, 0x2f, 0xe8, 0x12, 0x5b, 0x2c, 0xe8, 0x77, 0xde, 0x79, 0x75, 0xd8, + 0xb7, 0x26, 0xef, 0x5b, 0x1e, 0x76, 0x63, 0x22, 0x80, 0xee, 0x38, 0xaf, 0xad, 0x12, + 0x12, 0x5e, 0xa4, 0x4b, 0x96, 0x1b, 0xf9, 0x2f, 0x11, 0x78, 0xc9, 0xfa, 0x81, 0x9d, + 0x02, 0x08, 0x69, 0x97, 0x5b, 0xcb, 0xe1, 0x09, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 3, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x0d, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 4, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x48, 0x65, 0x6c, 0x6c, 0x6f], + sig: &[ + 0x1c, 0x1a, 0xd9, 0x76, 0xcb, 0xaa, 0xe3, 0xb3, 0x1d, 0xee, 0x07, 0x97, 0x1c, 0xf9, + 0x2c, 0x92, 0x8c, 0xe2, 0x09, 0x1a, 0x85, 0xf5, 0x89, 0x9f, 0x5e, 0x11, 0xec, 0xec, + 0x90, 0xfc, 0x9f, 0x8e, 0x93, 0xdf, 0x18, 0xc5, 0x03, 0x7e, 0xc9, 0xb2, 0x9c, 0x07, + 0x19, 0x5a, 0xd2, 0x84, 0xe6, 0x3d, 0x54, 0x8c, 0xd0, 0xa6, 0xfe, 0x35, 0x8c, 0xc7, + 0x75, 0xbd, 0x6c, 0x16, 0x08, 0xd2, 0xc9, 0x05, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 5, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0xf0, 0xcf, 0x5b, 0x3a, 0x28, 0x99, 0x76, 0x45, 0x8a, 0x1b, + 0xe6, 0x27, 0x7a, 0x50, 0x55, 0x54, 0x52, 0x53, 0xb4, 0x5b, 0x07, 0xdc, 0xc1, 0xab, + 0xd9, 0x6c, 0x8b, 0x98, 0x9c, 0x00, 0xf3, 0x01, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 6, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + sig: &[ + 0xd4, 0x65, 0x43, 0xbf, 0xb8, 0x92, 0xf8, 0x4e, 0xc1, 0x24, 0xdc, 0xdf, 0xc8, 0x47, + 0x03, 0x4c, 0x19, 0x36, 0x3b, 0xf3, 0xfc, 0x2f, 0xa8, 0x9b, 0x12, 0x67, 0x83, 0x3a, + 0x14, 0x85, 0x6e, 0x52, 0xe6, 0x07, 0x36, 0x91, 0x87, 0x83, 0xf9, 0x50, 0xb6, 0xf1, + 0xdd, 0x8d, 0x40, 0xdc, 0x34, 0x32, 0x47, 0xcd, 0x43, 0xce, 0x05, 0x4c, 0x2d, 0x68, + 0xef, 0x97, 0x4f, 0x7e, 0xd0, 0xf3, 0xc6, 0x0f, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 7, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[ + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + ], + sig: &[ + 0x87, 0x93, 0x50, 0x04, 0x55, 0x43, 0xbc, 0x14, 0xed, 0x2c, 0x08, 0x93, 0x9b, 0x68, + 0xc3, 0x0d, 0x22, 0x25, 0x1d, 0x83, 0xe0, 0x18, 0xca, 0xcb, 0xaf, 0x0c, 0x9d, 0x7a, + 0x48, 0xdb, 0x57, 0x7e, 0x80, 0xbd, 0xf7, 0x6c, 0xe9, 0x9e, 0x59, 0x26, 0x76, 0x2b, + 0xc1, 0x3b, 0x7b, 0x34, 0x83, 0x26, 0x0a, 0x5e, 0xf6, 0x3d, 0x07, 0xe3, 0x4b, 0x58, + 0xeb, 0x9c, 0x14, 0x62, 0x1a, 0xc9, 0x2f, 0x00, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 8, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, + ], + sig: &[ + 0x7b, 0xdc, 0x3f, 0x99, 0x19, 0xa0, 0x5f, 0x1d, 0x5d, 0xb4, 0xa3, 0xad, 0xa8, 0x96, + 0x09, 0x4f, 0x68, 0x71, 0xc1, 0xf3, 0x7a, 0xfc, 0x75, 0xdb, 0x82, 0xec, 0x31, 0x47, + 0xd8, 0x4d, 0x6f, 0x23, 0x7b, 0x7e, 0x5e, 0xcc, 0x26, 0xb5, 0x9c, 0xfe, 0xa0, 0xc7, + 0xea, 0xf1, 0x05, 0x2d, 0xc4, 0x27, 0xb0, 0xf7, 0x24, 0x61, 0x5b, 0xe9, 0xc3, 0xd3, + 0xe0, 0x13, 0x56, 0xc6, 0x5b, 0x9b, 0x51, 0x09, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 9, + comment: "", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, + ], + sig: &[ + 0x5d, 0xbd, 0x73, 0x60, 0xe5, 0x5a, 0xa3, 0x8e, 0x85, 0x5d, 0x6a, 0xd4, 0x8c, 0x34, + 0xbd, 0x35, 0xb7, 0x87, 0x16, 0x28, 0x50, 0x89, 0x06, 0x86, 0x1a, 0x7c, 0x47, 0x76, + 0x76, 0x5e, 0xd7, 0xd1, 0xe1, 0x3d, 0x91, 0x0f, 0xaa, 0xbd, 0x68, 0x9e, 0xc8, 0x61, + 0x8b, 0x78, 0x29, 0x5c, 0x8a, 0xb8, 0xf0, 0xe1, 0x9c, 0x8b, 0x4b, 0x43, 0xeb, 0x86, + 0x85, 0x77, 0x84, 0x99, 0xe9, 0x43, 0xae, 0x04, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 10, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 11, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 12, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xec, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, + 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 13, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, + 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 14, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 15, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 16, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 17, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xec, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, + 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 18, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, + 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 19, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 20, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, + 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 21, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, + 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 22, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, + 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0xec, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, + 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 23, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, + 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, + 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 24, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, 0xf7, 0xa2, 0xde, 0xf9, + 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x10, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 25, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 26, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 27, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xec, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, + 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 28, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xed, 0xd3, 0xf5, 0x5c, 0x1a, 0x63, 0x12, 0x58, 0xd6, 0x9c, + 0xf7, 0xa2, 0xde, 0xf9, 0xde, 0x14, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 29, + comment: "special values for r and s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x3f], + sig: &[ + 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x7f, 0xed, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f, + ], + result: Verdict::Invalid, + flags: &["InvalidSignature"], + }, + Vector { + tc_id: 30, + comment: "empty signature", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[], + result: Verdict::Invalid, + flags: &["TruncatedSignature"], + }, + Vector { + tc_id: 31, + comment: "s missing", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, + ], + result: Verdict::Invalid, + flags: &["TruncatedSignature"], + }, + Vector { + tc_id: 32, + comment: "signature too short", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, + ], + result: Verdict::Invalid, + flags: &["TruncatedSignature"], + }, + Vector { + tc_id: 33, + comment: "signature too long", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x0d, 0x20, 0x20, + ], + result: Verdict::Invalid, + flags: &["SignatureWithGarbage"], + }, + Vector { + tc_id: 34, + comment: "include pk in signature", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x0d, 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, + 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, + 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, 0x9e, 0xf5, 0x49, 0xfa, + ], + result: Verdict::Invalid, + flags: &["SignatureWithGarbage"], + }, + Vector { + tc_id: 35, + comment: "prepending 0 byte to signature", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x00, 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, + 0xb8, 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, + 0x2a, 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, + 0xf2, 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, + 0x36, 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x0d, + ], + result: Verdict::Invalid, + flags: &["SignatureWithGarbage"], + }, + Vector { + tc_id: 36, + comment: "prepending 0 byte to s", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x00, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, + 0xf2, 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, + 0x36, 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x0d, + ], + result: Verdict::Invalid, + flags: &["SignatureWithGarbage"], + }, + Vector { + tc_id: 37, + comment: "appending 0 byte to signature", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x0d, 0x00, + ], + result: Verdict::Invalid, + flags: &["SignatureWithGarbage"], + }, + Vector { + tc_id: 38, + comment: "removing 0 byte from signature", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74, 0x31, 0x37], + sig: &[ + 0x93, 0xde, 0x3c, 0xa2, 0x52, 0x42, 0x6c, 0x95, 0xf7, 0x35, 0xcb, 0x9e, 0xdd, 0x92, + 0xe8, 0x33, 0x21, 0xac, 0x62, 0x37, 0x2d, 0x5a, 0xa5, 0xb3, 0x79, 0x78, 0x6b, 0xae, + 0x11, 0x1a, 0xb6, 0xb1, 0x72, 0x51, 0x33, 0x0e, 0x8f, 0x9a, 0x7c, 0x30, 0xd6, 0x99, + 0x31, 0x37, 0xc5, 0x96, 0x00, 0x7d, 0x7b, 0x00, 0x14, 0x09, 0x28, 0x75, 0x35, 0xac, + 0x48, 0x04, 0xe6, 0x62, 0xbc, 0x58, 0xa3, + ], + result: Verdict::Invalid, + flags: &["CompressedSignature"], + }, + Vector { + tc_id: 39, + comment: "removing 0 byte from signature", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74, 0x31, 0x32, 0x36], + sig: &[ + 0xdf, 0xfe, 0xd3, 0x3a, 0x7f, 0x42, 0x0b, 0x62, 0xbb, 0x17, 0x31, 0xcf, 0xd0, 0x3b, + 0xe8, 0x05, 0xaf, 0xfd, 0x18, 0xa2, 0x81, 0xec, 0x02, 0xb1, 0x06, 0x7b, 0xa6, 0xe9, + 0xd2, 0x08, 0x26, 0x56, 0x9e, 0x74, 0x23, 0x47, 0xdf, 0x59, 0xc8, 0x8a, 0xe9, 0x6d, + 0xb1, 0xf1, 0x96, 0x9f, 0xb1, 0x89, 0xb0, 0xec, 0x34, 0x38, 0x1d, 0x85, 0x63, 0x3e, + 0x18, 0x89, 0xda, 0x48, 0xd9, 0x5e, 0x0e, + ], + result: Verdict::Invalid, + flags: &["CompressedSignature"], + }, + Vector { + tc_id: 40, + comment: "removing leading 0 byte from signature", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74, 0x35, 0x30], + sig: &[ + 0x6e, 0x17, 0x0c, 0x71, 0x95, 0x77, 0xc2, 0x5e, 0x0e, 0x1e, 0x8b, 0x8a, 0xa7, 0xa6, + 0x34, 0x6f, 0x8b, 0x10, 0x9f, 0x37, 0x38, 0x5c, 0xc2, 0xe8, 0x5d, 0xc3, 0xb4, 0xc0, + 0xf4, 0x6a, 0x9c, 0x6b, 0xca, 0xfd, 0x67, 0xf5, 0x23, 0x24, 0xc5, 0xdb, 0xaf, 0x40, + 0xa1, 0xb6, 0x73, 0xfb, 0x29, 0xc4, 0xa5, 0x60, 0x52, 0xd2, 0xd6, 0x99, 0x9d, 0x08, + 0x38, 0xa8, 0x33, 0x7b, 0xcc, 0xb5, 0x02, + ], + result: Verdict::Invalid, + flags: &["CompressedSignature"], + }, + Vector { + tc_id: 41, + comment: "dropping byte from signature", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74, 0x33, 0x34, 0x37], + sig: &[ + 0xb0, 0x92, 0x8b, 0x46, 0xe9, 0x9f, 0xbb, 0xad, 0x3f, 0x5c, 0xb5, 0x02, 0xd2, 0xcd, + 0x30, 0x9d, 0x94, 0xa7, 0xe8, 0x6c, 0xfd, 0x4d, 0x84, 0xb1, 0xfc, 0xf4, 0xce, 0xa1, + 0x80, 0x75, 0xa9, 0xc3, 0x69, 0x93, 0xc0, 0x58, 0x2d, 0xba, 0x1e, 0x9e, 0x51, 0x9f, + 0xae, 0x5a, 0x86, 0x54, 0xf4, 0x54, 0x20, 0x1a, 0xe0, 0xc3, 0xcb, 0x39, 0x7c, 0x37, + 0xb8, 0xf4, 0xf8, 0xee, 0xf1, 0x84, 0x00, + ], + result: Verdict::Invalid, + flags: &["CompressedSignature"], + }, + Vector { + tc_id: 42, + comment: "modified bit 0 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x64, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0x1d, 0x12, 0x5e, 0x55, 0x38, 0xf3, 0x8a, 0xfb, 0xcc, 0x1c, + 0x84, 0xe4, 0x89, 0x52, 0x10, 0x83, 0x04, 0x1d, 0x24, 0xbc, 0x62, 0x40, 0x76, 0x70, + 0x29, 0xda, 0x06, 0x32, 0x71, 0xa1, 0xff, 0x0c, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 43, + comment: "modified bit 1 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x67, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0xc1, 0x08, 0xca, 0x4b, 0x87, 0xa4, 0x9c, 0x9e, 0xd2, 0xcf, + 0x38, 0x3a, 0xec, 0xad, 0x8f, 0x54, 0xa9, 0x62, 0xb2, 0x89, 0x9d, 0xa8, 0x91, 0xe1, + 0x20, 0x04, 0xd7, 0x99, 0x3a, 0x62, 0x7e, 0x01, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 44, + comment: "modified bit 2 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x61, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0x9c, 0xe2, 0x3f, 0xc6, 0x21, 0x3e, 0xd5, 0xb8, 0x79, 0x12, + 0xe9, 0xbb, 0xf9, 0x2f, 0x5e, 0x2c, 0x78, 0x0e, 0xae, 0x26, 0xd1, 0x5c, 0x50, 0xa1, + 0x12, 0xd1, 0xe9, 0x7d, 0x2e, 0xa3, 0x3c, 0x06, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 45, + comment: "modified bit 7 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0xe5, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0xbb, 0x3e, 0xb5, 0x1c, 0xd9, 0x8d, 0xdd, 0xb2, 0x35, 0xa5, + 0xf4, 0x6f, 0x2b, 0xde, 0xd6, 0xaf, 0x18, 0x4a, 0x58, 0xd0, 0x9c, 0xce, 0x92, 0x8b, + 0xda, 0x43, 0xf4, 0x1d, 0x69, 0x11, 0x8a, 0x03, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 46, + comment: "modified bit 8 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7d, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0xcd, 0x23, 0x7d, 0xda, 0x9a, 0x11, 0x65, 0x01, 0xf6, 0x7a, + 0x57, 0x05, 0xa8, 0x54, 0xb9, 0xad, 0xc3, 0x04, 0xf3, 0x47, 0x20, 0x80, 0x3a, 0x91, + 0xb3, 0x24, 0xf2, 0xc1, 0x3e, 0x0f, 0x5a, 0x09, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 47, + comment: "modified bit 16 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x15, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0x6b, 0x16, 0x7b, 0xbd, 0xc0, 0xd8, 0x81, 0xcc, 0x04, 0xd2, + 0x89, 0x05, 0x55, 0x2c, 0x18, 0x76, 0xf3, 0x70, 0x98, 0x51, 0xab, 0xc5, 0x00, 0x73, + 0x76, 0x94, 0x0c, 0xc8, 0xa4, 0x35, 0xc3, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 48, + comment: "modified bit 31 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x12, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0x7f, 0xd2, 0xac, 0x7d, 0xa1, 0x4a, 0xff, 0xfc, 0xce, 0xeb, + 0x13, 0xf2, 0xa0, 0xd6, 0xb8, 0x87, 0x94, 0x1c, 0xb1, 0xa5, 0xeb, 0x57, 0xa5, 0x2f, + 0x3c, 0xb1, 0x31, 0xa1, 0x6c, 0xce, 0x7b, 0x0e, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 49, + comment: "modified bit 32 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x41, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0x73, 0x73, 0xba, 0x13, 0xeb, 0xbe, 0xf9, 0x9c, 0xd2, 0xa8, + 0xea, 0xd5, 0x5c, 0xe7, 0x35, 0xc9, 0x87, 0xd8, 0x5a, 0x35, 0x32, 0x09, 0x25, 0xa8, + 0xe8, 0x71, 0x70, 0x2d, 0xc7, 0xc5, 0xc4, 0x0d, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 50, + comment: "modified bit 63 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0x4e, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0xd3, 0x5b, 0xd3, 0x31, 0xc0, 0x3f, 0x08, 0x55, 0x50, 0x4c, + 0xa1, 0xca, 0xb8, 0x7b, 0x83, 0xc3, 0x6a, 0x02, 0x84, 0x25, 0xa3, 0xcf, 0x00, 0x7e, + 0xde, 0x4f, 0x42, 0x54, 0xc2, 0x61, 0xcb, 0x00, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 51, + comment: "modified bit 64 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x02, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0xcb, 0x35, 0x10, 0x1f, 0x73, 0xcf, 0x46, 0x7d, 0xea, 0xc8, + 0xc1, 0xa0, 0x3b, 0x6c, 0x3d, 0xc3, 0x5a, 0xf5, 0x44, 0x13, 0x27, 0x34, 0xb7, 0xe5, + 0x7a, 0xb2, 0x0c, 0x89, 0xb2, 0xe4, 0x75, 0x0d, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 52, + comment: "modified bit 97 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf2, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0xb5, 0x8d, 0x2e, 0x88, 0x78, 0x29, 0x0b, 0xff, 0x8d, 0x33, + 0x55, 0xfd, 0xd4, 0xea, 0x38, 0x19, 0x24, 0xee, 0x57, 0x87, 0x52, 0x35, 0x4e, 0xb6, + 0xde, 0xe6, 0x78, 0xab, 0x40, 0x11, 0xc3, 0x01, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 53, + comment: "modified bit 127 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x85, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2b, 0xb9, 0x78, 0xc8, 0x66, 0x18, 0x7f, 0xfb, 0x1c, 0xc7, 0xb2, + 0x9a, 0x0b, 0x40, 0x45, 0xae, 0xfc, 0x08, 0x76, 0x8d, 0xf6, 0x57, 0x17, 0x19, 0x4f, + 0xf0, 0xc6, 0xe6, 0x3f, 0x4d, 0xea, 0x0d, 0x02, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 54, + comment: "modified bit 240 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1d, 0x2b, 0x05, 0x76, 0xec, 0xf8, 0xea, 0xf6, 0x75, 0xf0, 0x0f, 0x3d, + 0xfb, 0xe1, 0x9f, 0x75, 0xb8, 0x3b, 0x76, 0x07, 0xa6, 0xc9, 0x64, 0x14, 0xf6, 0x82, + 0x1a, 0xf9, 0x20, 0xa2, 0x49, 0x8d, 0x03, 0x05, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 55, + comment: "modified bit 247 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x9c, 0x2b, 0xe5, 0x24, 0x1a, 0x34, 0x5c, 0x7b, 0x54, 0x28, 0x05, 0x4c, + 0x74, 0xb7, 0xc3, 0x82, 0xfa, 0x10, 0xd4, 0xa5, 0xf1, 0xe8, 0xf8, 0xb7, 0x9a, 0x71, + 0xd3, 0xfd, 0xea, 0x22, 0x54, 0xf1, 0xff, 0x0e, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 56, + comment: "modified bit 248 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x2a, 0x63, 0x95, 0x0c, 0x85, 0xcd, 0x6d, 0xc9, 0x63, 0x64, 0xe7, + 0x68, 0xde, 0x50, 0xff, 0x77, 0x32, 0xb5, 0x38, 0xf8, 0xa0, 0xb1, 0x61, 0x5d, 0x79, + 0x91, 0x90, 0xab, 0x60, 0x08, 0x49, 0x23, 0x0e, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 57, + comment: "modified bit 253 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x0b, 0x54, 0x3b, 0xd3, 0xda, 0x0a, 0x56, 0xa8, 0xc9, 0xc1, 0x52, + 0xf5, 0x9c, 0x9f, 0xec, 0x12, 0xf3, 0x1f, 0xa6, 0x64, 0x34, 0xd4, 0x8b, 0x81, 0x7b, + 0x30, 0xd9, 0x0c, 0xb4, 0xef, 0xa8, 0xb5, 0x01, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 58, + comment: "modified bit 254 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0x6b, 0x8d, 0xa0, 0x7e, 0xfd, 0x07, 0xa6, 0xda, 0xfb, 0x01, 0x5e, + 0xd6, 0xa3, 0x2f, 0xe1, 0x36, 0x31, 0x9a, 0x97, 0x2f, 0xfb, 0xc3, 0x41, 0xf3, 0xa0, + 0xbe, 0xae, 0x97, 0xcc, 0xf8, 0x13, 0x65, 0x05, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 59, + comment: "modified bit 255 in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x65, 0x7c, 0x14, 0x92, 0x40, 0x2a, 0xb5, 0xce, 0x03, 0xe2, 0xc3, 0xa7, 0xf0, 0x38, + 0x4d, 0x05, 0x1b, 0x9c, 0xf3, 0x57, 0x0f, 0x12, 0x07, 0xfc, 0x78, 0xc1, 0xbc, 0xc9, + 0x8c, 0x28, 0x1c, 0xab, 0x22, 0x7a, 0xed, 0xf2, 0x59, 0xf9, 0x10, 0xf0, 0xf3, 0xa7, + 0x59, 0xa3, 0x35, 0x06, 0x26, 0x65, 0x21, 0x79, 0x25, 0xd0, 0x19, 0x17, 0x3b, 0x88, + 0x91, 0x7e, 0xae, 0x29, 0x4f, 0x75, 0xd4, 0x0f, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 60, + comment: "R==0", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0xe0, 0xb8, 0xe7, 0x77, 0x0d, 0x51, 0xc7, 0xa3, 0x63, 0x75, + 0xd0, 0x06, 0xc5, 0xbf, 0xfd, 0x6a, 0xf4, 0x3f, 0xf5, 0x4a, 0xaf, 0x47, 0xe4, 0x33, + 0x0d, 0xc1, 0x18, 0xc7, 0x1d, 0x61, 0xec, 0x02, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 61, + comment: "invalid R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0x46, 0x3a, 0x19, 0x08, 0x38, 0x2e, 0x7e, 0xb7, 0x69, 0x3a, + 0xce, 0xf9, 0x88, 0x4f, 0x7c, 0xf9, 0x31, 0xa2, 0x15, 0xe0, 0x79, 0x18, 0x76, 0xbe, + 0x22, 0xc6, 0x31, 0xa5, 0x98, 0x81, 0xfd, 0x0e, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 62, + comment: "all bits flipped in R", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x9a, 0x83, 0xeb, 0x6d, 0xbf, 0xd5, 0x4a, 0x31, 0xfc, 0x1d, 0x3c, 0x58, 0x0f, 0xc7, + 0xb2, 0xfa, 0xe4, 0x63, 0x0c, 0xa8, 0xf0, 0xed, 0xf8, 0x03, 0x87, 0x3e, 0x43, 0x36, + 0x73, 0xd7, 0xe3, 0xd4, 0x0e, 0x94, 0x25, 0x45, 0x86, 0xcb, 0x61, 0x88, 0xc5, 0x38, + 0x6c, 0x3f, 0xeb, 0xed, 0x47, 0x7c, 0xb9, 0xa6, 0xcb, 0x29, 0xe3, 0x97, 0x9a, 0xdc, + 0x4c, 0xb2, 0x7c, 0xf5, 0x27, 0x8f, 0xb7, 0x0a, + ], + result: Verdict::Invalid, + flags: &["InvalidEncoding"], + }, + Vector { + tc_id: 63, + comment: "checking malleability ", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x67, 0x65, 0x4b, 0xce, 0x38, 0x32, 0xc2, 0xd7, 0x6f, 0x8f, + 0x6f, 0x5d, 0xaf, 0xc0, 0x8d, 0x93, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x1d, + ], + result: Verdict::Invalid, + flags: &["SignatureMalleability"], + }, + Vector { + tc_id: 64, + comment: "checking malleability ", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x54, 0x39, 0x41, 0x2b, 0x53, 0x95, 0xd4, 0x2f, 0x46, 0x2c, + 0x67, 0x00, 0x8e, 0xba, 0x6c, 0xa8, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x2d, + ], + result: Verdict::Invalid, + flags: &["SignatureMalleability"], + }, + Vector { + tc_id: 65, + comment: "checking malleability ", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x2e, 0xe1, 0x2c, 0xe5, 0x87, 0x5b, 0xf9, 0xdf, 0xf2, 0x65, + 0x56, 0x46, 0x4b, 0xae, 0x2a, 0xd2, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x4d, + ], + result: Verdict::Invalid, + flags: &["SignatureMalleability"], + }, + Vector { + tc_id: 66, + comment: "checking malleability ", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0xe2, 0x30, 0x04, 0x59, 0xf1, 0xe7, 0x42, 0x40, 0x4c, 0xd9, + 0x34, 0xd2, 0xc5, 0x95, 0xa6, 0x25, 0x3a, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x8d, + ], + result: Verdict::Invalid, + flags: &["SignatureMalleability"], + }, + Vector { + tc_id: 67, + comment: "checking malleability ", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x2d, + ], + result: Verdict::Invalid, + flags: &["SignatureMalleability"], + }, + Vector { + tc_id: 68, + comment: "checking malleability ", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x4d, + ], + result: Verdict::Invalid, + flags: &["SignatureMalleability"], + }, + Vector { + tc_id: 69, + comment: "checking malleability ", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x7a, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x8d, + ], + result: Verdict::Invalid, + flags: &["SignatureMalleability"], + }, + Vector { + tc_id: 70, + comment: "checking malleability ", + public_key: &[ + 0x7d, 0x4d, 0x0e, 0x7f, 0x61, 0x53, 0xa6, 0x9b, 0x62, 0x42, 0xb5, 0x22, 0xab, 0xbe, + 0xe6, 0x85, 0xfd, 0xa4, 0x42, 0x0f, 0x88, 0x34, 0xb1, 0x08, 0xc3, 0xbd, 0xae, 0x36, + 0x9e, 0xf5, 0x49, 0xfa, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x7c, 0x38, 0xe0, 0x26, 0xf2, 0x9e, 0x14, 0xaa, 0xbd, 0x05, 0x9a, 0x0f, 0x2d, 0xb8, + 0xb0, 0xcd, 0x78, 0x30, 0x40, 0x60, 0x9a, 0x8b, 0xe6, 0x84, 0xdb, 0x12, 0xf8, 0x2a, + 0x27, 0x77, 0x4a, 0xb0, 0x67, 0x91, 0x55, 0x71, 0x1e, 0xcf, 0xaf, 0x7f, 0x99, 0xf2, + 0x77, 0xba, 0xd0, 0xc6, 0xae, 0x7e, 0x39, 0xd4, 0xee, 0xf6, 0x76, 0x57, 0x33, 0x36, + 0xa5, 0xc5, 0x1e, 0xb6, 0xf9, 0x46, 0xb3, 0x8d, + ], + result: Verdict::Invalid, + flags: &["SignatureMalleability"], + }, + Vector { + tc_id: 71, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[], + sig: &[ + 0x50, 0x56, 0x32, 0x5d, 0x2a, 0xb4, 0x40, 0xbf, 0x30, 0xbb, 0xf0, 0xf7, 0x17, 0x31, + 0x99, 0xaa, 0x8b, 0x4e, 0x6f, 0xbc, 0x09, 0x1c, 0xf3, 0xeb, 0x6b, 0xc6, 0xcf, 0x87, + 0xcd, 0x73, 0xd9, 0x92, 0xff, 0xc2, 0x16, 0xc8, 0x5e, 0x4a, 0xb5, 0xb8, 0xa0, 0xbb, + 0xc7, 0xe9, 0xa6, 0xe9, 0xf8, 0xd3, 0x3b, 0x7f, 0x6e, 0x5a, 0xc0, 0xff, 0xdc, 0x22, + 0xd9, 0xfc, 0xaf, 0x78, 0x4a, 0xf8, 0x43, 0x02, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 72, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[0x78], + sig: &[ + 0x48, 0x1f, 0xaf, 0xbf, 0x43, 0x64, 0xd7, 0xb6, 0x82, 0x47, 0x52, 0x82, 0xf5, 0x17, + 0xa3, 0xac, 0x05, 0x38, 0xc9, 0xa6, 0xb6, 0xa5, 0x62, 0xe9, 0x9a, 0x3d, 0x8e, 0x5a, + 0xfb, 0x4f, 0x90, 0xa5, 0x59, 0xb0, 0x56, 0xb9, 0xf0, 0x7a, 0xf0, 0x23, 0x90, 0x57, + 0x53, 0xb0, 0x2d, 0x95, 0xeb, 0x32, 0x9a, 0x35, 0xc7, 0x7f, 0x15, 0x4b, 0x79, 0xab, + 0xbc, 0xd2, 0x91, 0x61, 0x5c, 0xe4, 0x2f, 0x02, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 73, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[0x54, 0x65, 0x73, 0x74], + sig: &[ + 0x8a, 0x9b, 0xb4, 0xc4, 0x65, 0xa3, 0x86, 0x3a, 0xbc, 0x9f, 0xd0, 0xdd, 0x35, 0xd8, + 0x0b, 0xb2, 0x8f, 0x7d, 0x33, 0xd3, 0x7d, 0x74, 0x67, 0x98, 0x02, 0xd6, 0x3f, 0x82, + 0xb2, 0x0d, 0xa1, 0x14, 0xb8, 0xd7, 0x65, 0xa1, 0x20, 0x6b, 0x3e, 0x9a, 0xd7, 0xcf, + 0x2b, 0x2d, 0x8d, 0x77, 0x8b, 0xb8, 0x65, 0x1f, 0x1f, 0xa9, 0x92, 0xdb, 0x29, 0x3c, + 0x00, 0x39, 0xea, 0xcb, 0x61, 0x61, 0x48, 0x0f, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 74, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[0x48, 0x65, 0x6c, 0x6c, 0x6f], + sig: &[ + 0xd8, 0x39, 0xc2, 0x0a, 0xbf, 0xda, 0x1f, 0xd4, 0x29, 0x53, 0x18, 0x31, 0xc6, 0x4f, + 0x81, 0x3f, 0x84, 0xb9, 0x13, 0xe9, 0x92, 0x85, 0x40, 0x31, 0x0c, 0xf0, 0x60, 0xb4, + 0x4c, 0x3d, 0xbf, 0x94, 0x57, 0xd4, 0x4a, 0x77, 0x21, 0xfd, 0xc0, 0xd6, 0x77, 0x24, + 0xff, 0x81, 0xcb, 0x45, 0x0d, 0xd3, 0x9b, 0x10, 0xcf, 0xb6, 0x5d, 0xb1, 0x5d, 0xda, + 0x4b, 0x8b, 0xf0, 0x9d, 0x26, 0xbd, 0x38, 0x01, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 75, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[0x31, 0x32, 0x33, 0x34, 0x30, 0x30], + sig: &[ + 0x9b, 0xbb, 0x10, 0x52, 0xdc, 0xfa, 0x8a, 0xd2, 0x71, 0x5c, 0x2e, 0xb7, 0x16, 0xae, + 0x4f, 0x19, 0x02, 0xde, 0xa3, 0x53, 0xd4, 0x2e, 0xe0, 0x9f, 0xd4, 0xc0, 0xb4, 0xfc, + 0xb8, 0xb5, 0x2b, 0x52, 0x19, 0xe2, 0x20, 0x00, 0x16, 0xe1, 0x19, 0x9d, 0x00, 0x61, + 0x89, 0x1c, 0x26, 0x3e, 0x31, 0xb0, 0xbc, 0x3b, 0x55, 0x67, 0x3c, 0x19, 0x61, 0x0c, + 0x4e, 0x0f, 0xa5, 0x40, 0x80, 0x04, 0x16, 0x0b, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 76, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + ], + sig: &[ + 0xf6, 0x3b, 0x5c, 0x06, 0x67, 0xc7, 0x89, 0x7f, 0xc2, 0x83, 0x29, 0x64, 0x16, 0xf7, + 0xf6, 0x0e, 0x84, 0xbb, 0xde, 0x9c, 0xbd, 0x83, 0x2e, 0x56, 0xbe, 0x46, 0x3e, 0xd9, + 0xf5, 0x68, 0x06, 0x97, 0x02, 0xb1, 0x7a, 0x2f, 0x7c, 0x34, 0x1e, 0xbf, 0x59, 0x07, + 0x06, 0xa6, 0x38, 0x8a, 0xc7, 0x6a, 0xc6, 0x13, 0xc1, 0x67, 0x5e, 0xc0, 0xf2, 0xc7, + 0x11, 0x8f, 0x25, 0x73, 0x42, 0x2a, 0x50, 0x0b, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 77, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[ + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, 0x61, + ], + sig: &[ + 0x1b, 0xc4, 0x4d, 0x70, 0x01, 0xe6, 0xb5, 0xb9, 0x09, 0x0f, 0xef, 0x34, 0xb2, 0xca, + 0x48, 0x0f, 0x97, 0x86, 0xbb, 0xef, 0xa7, 0xd2, 0x79, 0x35, 0x3e, 0x58, 0x81, 0xe8, + 0xdf, 0xb9, 0x1b, 0x80, 0x3c, 0xcd, 0x46, 0x50, 0x0e, 0x27, 0x0e, 0xf0, 0x10, 0x9b, + 0xfd, 0x74, 0x10, 0x37, 0x55, 0x88, 0x32, 0x12, 0x0b, 0xc2, 0xa4, 0xf2, 0x0f, 0xbe, + 0x7b, 0x5f, 0xb3, 0xc3, 0xaa, 0xf2, 0x3e, 0x08, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 78, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[ + 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2d, + 0x2e, 0x2f, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3a, 0x3b, + 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, + 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, + 0x58, 0x59, 0x5a, 0x5b, 0x5c, 0x5d, 0x5e, 0x5f, 0x60, + ], + sig: &[ + 0xea, 0x8e, 0x22, 0x14, 0x3b, 0x02, 0x37, 0x2e, 0x76, 0xe9, 0x9a, 0xec, 0xe3, 0xed, + 0x36, 0xae, 0xc5, 0x29, 0x76, 0x8a, 0x27, 0xe2, 0xbb, 0x49, 0xbd, 0xc1, 0x35, 0xd4, + 0x43, 0x78, 0x06, 0x1e, 0x1f, 0x62, 0xd1, 0xac, 0x51, 0x8f, 0x33, 0xeb, 0xf3, 0x7b, + 0x2e, 0xe8, 0xcc, 0x6d, 0xde, 0x68, 0xa4, 0xbd, 0x7d, 0x4a, 0x2f, 0x4d, 0x6c, 0xb7, + 0x7f, 0x01, 0x5f, 0x71, 0xca, 0x9f, 0xc3, 0x0d, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 79, + comment: "", + public_key: &[ + 0xa1, 0x2c, 0x2b, 0xeb, 0x77, 0x26, 0x5f, 0x2a, 0xac, 0x95, 0x3b, 0x50, 0x09, 0x34, + 0x9d, 0x94, 0x15, 0x5a, 0x03, 0xad, 0xa4, 0x16, 0xaa, 0xd4, 0x51, 0x31, 0x94, 0x80, + 0xe9, 0x83, 0xca, 0x4c, + ], + msg: &[ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, + ], + sig: &[ + 0x8a, 0xcd, 0x67, 0x9e, 0x1a, 0x91, 0x4f, 0xc4, 0x5d, 0x5f, 0xa8, 0x3d, 0x30, 0x21, + 0xf0, 0x50, 0x9c, 0x80, 0x5c, 0x8d, 0x27, 0x1d, 0xf5, 0x4e, 0x52, 0xf4, 0x3c, 0xfb, + 0xd0, 0x0c, 0xb6, 0x22, 0x2b, 0xf8, 0x1d, 0x58, 0xfe, 0x1d, 0xe2, 0xde, 0x37, 0x8d, + 0xf6, 0x7e, 0xe9, 0xf4, 0x53, 0x78, 0x66, 0x26, 0x96, 0x1f, 0xe5, 0x0a, 0x9b, 0x05, + 0xf1, 0x2b, 0x6f, 0x08, 0x99, 0xeb, 0xdd, 0x0a, + ], + result: Verdict::Valid, + flags: &["Valid"], + }, + Vector { + tc_id: 80, + comment: "draft-josefsson-eddsa-ed25519-02: Test 1", + public_key: &[ + 0xd7, 0x5a, 0x98, 0x01, 0x82, 0xb1, 0x0a, 0xb7, 0xd5, 0x4b, 0xfe, 0xd3, 0xc9, 0x64, + 0x07, 0x3a, 0x0e, 0xe1, 0x72, 0xf3, 0xda, 0xa6, 0x23, 0x25, 0xaf, 0x02, 0x1a, 0x68, + 0xf7, 0x07, 0x51, 0x1a, + ], + msg: &[], + sig: &[ + 0xe5, 0x56, 0x43, 0x00, 0xc3, 0x60, 0xac, 0x72, 0x90, 0x86, 0xe2, 0xcc, 0x80, 0x6e, + 0x82, 0x8a, 0x84, 0x87, 0x7f, 0x1e, 0xb8, 0xe5, 0xd9, 0x74, 0xd8, 0x73, 0xe0, 0x65, + 0x22, 0x49, 0x01, 0x55, 0x5f, 0xb8, 0x82, 0x15, 0x90, 0xa3, 0x3b, 0xac, 0xc6, 0x1e, + 0x39, 0x70, 0x1c, 0xf9, 0xb4, 0x6b, 0xd2, 0x5b, 0xf5, 0xf0, 0x59, 0x5b, 0xbe, 0x24, + 0x65, 0x51, 0x41, 0x43, 0x8e, 0x7a, 0x10, 0x0b, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 81, + comment: "draft-josefsson-eddsa-ed25519-02: Test 2", + public_key: &[ + 0x3d, 0x40, 0x17, 0xc3, 0xe8, 0x43, 0x89, 0x5a, 0x92, 0xb7, 0x0a, 0xa7, 0x4d, 0x1b, + 0x7e, 0xbc, 0x9c, 0x98, 0x2c, 0xcf, 0x2e, 0xc4, 0x96, 0x8c, 0xc0, 0xcd, 0x55, 0xf1, + 0x2a, 0xf4, 0x66, 0x0c, + ], + msg: &[0x72], + sig: &[ + 0x92, 0xa0, 0x09, 0xa9, 0xf0, 0xd4, 0xca, 0xb8, 0x72, 0x0e, 0x82, 0x0b, 0x5f, 0x64, + 0x25, 0x40, 0xa2, 0xb2, 0x7b, 0x54, 0x16, 0x50, 0x3f, 0x8f, 0xb3, 0x76, 0x22, 0x23, + 0xeb, 0xdb, 0x69, 0xda, 0x08, 0x5a, 0xc1, 0xe4, 0x3e, 0x15, 0x99, 0x6e, 0x45, 0x8f, + 0x36, 0x13, 0xd0, 0xf1, 0x1d, 0x8c, 0x38, 0x7b, 0x2e, 0xae, 0xb4, 0x30, 0x2a, 0xee, + 0xb0, 0x0d, 0x29, 0x16, 0x12, 0xbb, 0x0c, 0x00, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 82, + comment: "draft-josefsson-eddsa-ed25519-02: Test 3", + public_key: &[ + 0xfc, 0x51, 0xcd, 0x8e, 0x62, 0x18, 0xa1, 0xa3, 0x8d, 0xa4, 0x7e, 0xd0, 0x02, 0x30, + 0xf0, 0x58, 0x08, 0x16, 0xed, 0x13, 0xba, 0x33, 0x03, 0xac, 0x5d, 0xeb, 0x91, 0x15, + 0x48, 0x90, 0x80, 0x25, + ], + msg: &[0xaf, 0x82], + sig: &[ + 0x62, 0x91, 0xd6, 0x57, 0xde, 0xec, 0x24, 0x02, 0x48, 0x27, 0xe6, 0x9c, 0x3a, 0xbe, + 0x01, 0xa3, 0x0c, 0xe5, 0x48, 0xa2, 0x84, 0x74, 0x3a, 0x44, 0x5e, 0x36, 0x80, 0xd7, + 0xdb, 0x5a, 0xc3, 0xac, 0x18, 0xff, 0x9b, 0x53, 0x8d, 0x16, 0xf2, 0x90, 0xae, 0x67, + 0xf7, 0x60, 0x98, 0x4d, 0xc6, 0x59, 0x4a, 0x7c, 0x15, 0xe9, 0x71, 0x6e, 0xd2, 0x8d, + 0xc0, 0x27, 0xbe, 0xce, 0xea, 0x1e, 0xc4, 0x0a, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 83, + comment: "draft-josefsson-eddsa-ed25519-02: Test 1024", + public_key: &[ + 0x27, 0x81, 0x17, 0xfc, 0x14, 0x4c, 0x72, 0x34, 0x0f, 0x67, 0xd0, 0xf2, 0x31, 0x6e, + 0x83, 0x86, 0xce, 0xff, 0xbf, 0x2b, 0x24, 0x28, 0xc9, 0xc5, 0x1f, 0xef, 0x7c, 0x59, + 0x7f, 0x1d, 0x42, 0x6e, + ], + msg: &[ + 0x08, 0xb8, 0xb2, 0xb7, 0x33, 0x42, 0x42, 0x43, 0x76, 0x0f, 0xe4, 0x26, 0xa4, 0xb5, + 0x49, 0x08, 0x63, 0x21, 0x10, 0xa6, 0x6c, 0x2f, 0x65, 0x91, 0xea, 0xbd, 0x33, 0x45, + 0xe3, 0xe4, 0xeb, 0x98, 0xfa, 0x6e, 0x26, 0x4b, 0xf0, 0x9e, 0xfe, 0x12, 0xee, 0x50, + 0xf8, 0xf5, 0x4e, 0x9f, 0x77, 0xb1, 0xe3, 0x55, 0xf6, 0xc5, 0x05, 0x44, 0xe2, 0x3f, + 0xb1, 0x43, 0x3d, 0xdf, 0x73, 0xbe, 0x84, 0xd8, 0x79, 0xde, 0x7c, 0x00, 0x46, 0xdc, + 0x49, 0x96, 0xd9, 0xe7, 0x73, 0xf4, 0xbc, 0x9e, 0xfe, 0x57, 0x38, 0x82, 0x9a, 0xdb, + 0x26, 0xc8, 0x1b, 0x37, 0xc9, 0x3a, 0x1b, 0x27, 0x0b, 0x20, 0x32, 0x9d, 0x65, 0x86, + 0x75, 0xfc, 0x6e, 0xa5, 0x34, 0xe0, 0x81, 0x0a, 0x44, 0x32, 0x82, 0x6b, 0xf5, 0x8c, + 0x94, 0x1e, 0xfb, 0x65, 0xd5, 0x7a, 0x33, 0x8b, 0xbd, 0x2e, 0x26, 0x64, 0x0f, 0x89, + 0xff, 0xbc, 0x1a, 0x85, 0x8e, 0xfc, 0xb8, 0x55, 0x0e, 0xe3, 0xa5, 0xe1, 0x99, 0x8b, + 0xd1, 0x77, 0xe9, 0x3a, 0x73, 0x63, 0xc3, 0x44, 0xfe, 0x6b, 0x19, 0x9e, 0xe5, 0xd0, + 0x2e, 0x82, 0xd5, 0x22, 0xc4, 0xfe, 0xba, 0x15, 0x45, 0x2f, 0x80, 0x28, 0x8a, 0x82, + 0x1a, 0x57, 0x91, 0x16, 0xec, 0x6d, 0xad, 0x2b, 0x3b, 0x31, 0x0d, 0xa9, 0x03, 0x40, + 0x1a, 0xa6, 0x21, 0x00, 0xab, 0x5d, 0x1a, 0x36, 0x55, 0x3e, 0x06, 0x20, 0x3b, 0x33, + 0x89, 0x0c, 0xc9, 0xb8, 0x32, 0xf7, 0x9e, 0xf8, 0x05, 0x60, 0xcc, 0xb9, 0xa3, 0x9c, + 0xe7, 0x67, 0x96, 0x7e, 0xd6, 0x28, 0xc6, 0xad, 0x57, 0x3c, 0xb1, 0x16, 0xdb, 0xef, + 0xef, 0xd7, 0x54, 0x99, 0xda, 0x96, 0xbd, 0x68, 0xa8, 0xa9, 0x7b, 0x92, 0x8a, 0x8b, + 0xbc, 0x10, 0x3b, 0x66, 0x21, 0xfc, 0xde, 0x2b, 0xec, 0xa1, 0x23, 0x1d, 0x20, 0x6b, + 0xe6, 0xcd, 0x9e, 0xc7, 0xaf, 0xf6, 0xf6, 0xc9, 0x4f, 0xcd, 0x72, 0x04, 0xed, 0x34, + 0x55, 0xc6, 0x8c, 0x83, 0xf4, 0xa4, 0x1d, 0xa4, 0xaf, 0x2b, 0x74, 0xef, 0x5c, 0x53, + 0xf1, 0xd8, 0xac, 0x70, 0xbd, 0xcb, 0x7e, 0xd1, 0x85, 0xce, 0x81, 0xbd, 0x84, 0x35, + 0x9d, 0x44, 0x25, 0x4d, 0x95, 0x62, 0x9e, 0x98, 0x55, 0xa9, 0x4a, 0x7c, 0x19, 0x58, + 0xd1, 0xf8, 0xad, 0xa5, 0xd0, 0x53, 0x2e, 0xd8, 0xa5, 0xaa, 0x3f, 0xb2, 0xd1, 0x7b, + 0xa7, 0x0e, 0xb6, 0x24, 0x8e, 0x59, 0x4e, 0x1a, 0x22, 0x97, 0xac, 0xbb, 0xb3, 0x9d, + 0x50, 0x2f, 0x1a, 0x8c, 0x6e, 0xb6, 0xf1, 0xce, 0x22, 0xb3, 0xde, 0x1a, 0x1f, 0x40, + 0xcc, 0x24, 0x55, 0x41, 0x19, 0xa8, 0x31, 0xa9, 0xaa, 0xd6, 0x07, 0x9c, 0xad, 0x88, + 0x42, 0x5d, 0xe6, 0xbd, 0xe1, 0xa9, 0x18, 0x7e, 0xbb, 0x60, 0x92, 0xcf, 0x67, 0xbf, + 0x2b, 0x13, 0xfd, 0x65, 0xf2, 0x70, 0x88, 0xd7, 0x8b, 0x7e, 0x88, 0x3c, 0x87, 0x59, + 0xd2, 0xc4, 0xf5, 0xc6, 0x5a, 0xdb, 0x75, 0x53, 0x87, 0x8a, 0xd5, 0x75, 0xf9, 0xfa, + 0xd8, 0x78, 0xe8, 0x0a, 0x0c, 0x9b, 0xa6, 0x3b, 0xcb, 0xcc, 0x27, 0x32, 0xe6, 0x94, + 0x85, 0xbb, 0xc9, 0xc9, 0x0b, 0xfb, 0xd6, 0x24, 0x81, 0xd9, 0x08, 0x9b, 0xec, 0xcf, + 0x80, 0xcf, 0xe2, 0xdf, 0x16, 0xa2, 0xcf, 0x65, 0xbd, 0x92, 0xdd, 0x59, 0x7b, 0x07, + 0x07, 0xe0, 0x91, 0x7a, 0xf4, 0x8b, 0xbb, 0x75, 0xfe, 0xd4, 0x13, 0xd2, 0x38, 0xf5, + 0x55, 0x5a, 0x7a, 0x56, 0x9d, 0x80, 0xc3, 0x41, 0x4a, 0x8d, 0x08, 0x59, 0xdc, 0x65, + 0xa4, 0x61, 0x28, 0xba, 0xb2, 0x7a, 0xf8, 0x7a, 0x71, 0x31, 0x4f, 0x31, 0x8c, 0x78, + 0x2b, 0x23, 0xeb, 0xfe, 0x80, 0x8b, 0x82, 0xb0, 0xce, 0x26, 0x40, 0x1d, 0x2e, 0x22, + 0xf0, 0x4d, 0x83, 0xd1, 0x25, 0x5d, 0xc5, 0x1a, 0xdd, 0xd3, 0xb7, 0x5a, 0x2b, 0x1a, + 0xe0, 0x78, 0x45, 0x04, 0xdf, 0x54, 0x3a, 0xf8, 0x96, 0x9b, 0xe3, 0xea, 0x70, 0x82, + 0xff, 0x7f, 0xc9, 0x88, 0x8c, 0x14, 0x4d, 0xa2, 0xaf, 0x58, 0x42, 0x9e, 0xc9, 0x60, + 0x31, 0xdb, 0xca, 0xd3, 0xda, 0xd9, 0xaf, 0x0d, 0xcb, 0xaa, 0xaf, 0x26, 0x8c, 0xb8, + 0xfc, 0xff, 0xea, 0xd9, 0x4f, 0x3c, 0x7c, 0xa4, 0x95, 0xe0, 0x56, 0xa9, 0xb4, 0x7a, + 0xcd, 0xb7, 0x51, 0xfb, 0x73, 0xe6, 0x66, 0xc6, 0xc6, 0x55, 0xad, 0xe8, 0x29, 0x72, + 0x97, 0xd0, 0x7a, 0xd1, 0xba, 0x5e, 0x43, 0xf1, 0xbc, 0xa3, 0x23, 0x01, 0x65, 0x13, + 0x39, 0xe2, 0x29, 0x04, 0xcc, 0x8c, 0x42, 0xf5, 0x8c, 0x30, 0xc0, 0x4a, 0xaf, 0xdb, + 0x03, 0x8d, 0xda, 0x08, 0x47, 0xdd, 0x98, 0x8d, 0xcd, 0xa6, 0xf3, 0xbf, 0xd1, 0x5c, + 0x4b, 0x4c, 0x45, 0x25, 0x00, 0x4a, 0xa0, 0x6e, 0xef, 0xf8, 0xca, 0x61, 0x78, 0x3a, + 0xac, 0xec, 0x57, 0xfb, 0x3d, 0x1f, 0x92, 0xb0, 0xfe, 0x2f, 0xd1, 0xa8, 0x5f, 0x67, + 0x24, 0x51, 0x7b, 0x65, 0xe6, 0x14, 0xad, 0x68, 0x08, 0xd6, 0xf6, 0xee, 0x34, 0xdf, + 0xf7, 0x31, 0x0f, 0xdc, 0x82, 0xae, 0xbf, 0xd9, 0x04, 0xb0, 0x1e, 0x1d, 0xc5, 0x4b, + 0x29, 0x27, 0x09, 0x4b, 0x2d, 0xb6, 0x8d, 0x6f, 0x90, 0x3b, 0x68, 0x40, 0x1a, 0xde, + 0xbf, 0x5a, 0x7e, 0x08, 0xd7, 0x8f, 0xf4, 0xef, 0x5d, 0x63, 0x65, 0x3a, 0x65, 0x04, + 0x0c, 0xf9, 0xbf, 0xd4, 0xac, 0xa7, 0x98, 0x4a, 0x74, 0xd3, 0x71, 0x45, 0x98, 0x67, + 0x80, 0xfc, 0x0b, 0x16, 0xac, 0x45, 0x16, 0x49, 0xde, 0x61, 0x88, 0xa7, 0xdb, 0xdf, + 0x19, 0x1f, 0x64, 0xb5, 0xfc, 0x5e, 0x2a, 0xb4, 0x7b, 0x57, 0xf7, 0xf7, 0x27, 0x6c, + 0xd4, 0x19, 0xc1, 0x7a, 0x3c, 0xa8, 0xe1, 0xb9, 0x39, 0xae, 0x49, 0xe4, 0x88, 0xac, + 0xba, 0x6b, 0x96, 0x56, 0x10, 0xb5, 0x48, 0x01, 0x09, 0xc8, 0xb1, 0x7b, 0x80, 0xe1, + 0xb7, 0xb7, 0x50, 0xdf, 0xc7, 0x59, 0x8d, 0x5d, 0x50, 0x11, 0xfd, 0x2d, 0xcc, 0x56, + 0x00, 0xa3, 0x2e, 0xf5, 0xb5, 0x2a, 0x1e, 0xcc, 0x82, 0x0e, 0x30, 0x8a, 0xa3, 0x42, + 0x72, 0x1a, 0xac, 0x09, 0x43, 0xbf, 0x66, 0x86, 0xb6, 0x4b, 0x25, 0x79, 0x37, 0x65, + 0x04, 0xcc, 0xc4, 0x93, 0xd9, 0x7e, 0x6a, 0xed, 0x3f, 0xb0, 0xf9, 0xcd, 0x71, 0xa4, + 0x3d, 0xd4, 0x97, 0xf0, 0x1f, 0x17, 0xc0, 0xe2, 0xcb, 0x37, 0x97, 0xaa, 0x2a, 0x2f, + 0x25, 0x66, 0x56, 0x16, 0x8e, 0x6c, 0x49, 0x6a, 0xfc, 0x5f, 0xb9, 0x32, 0x46, 0xf6, + 0xb1, 0x11, 0x63, 0x98, 0xa3, 0x46, 0xf1, 0xa6, 0x41, 0xf3, 0xb0, 0x41, 0xe9, 0x89, + 0xf7, 0x91, 0x4f, 0x90, 0xcc, 0x2c, 0x7f, 0xff, 0x35, 0x78, 0x76, 0xe5, 0x06, 0xb5, + 0x0d, 0x33, 0x4b, 0xa7, 0x7c, 0x22, 0x5b, 0xc3, 0x07, 0xba, 0x53, 0x71, 0x52, 0xf3, + 0xf1, 0x61, 0x0e, 0x4e, 0xaf, 0xe5, 0x95, 0xf6, 0xd9, 0xd9, 0x0d, 0x11, 0xfa, 0xa9, + 0x33, 0xa1, 0x5e, 0xf1, 0x36, 0x95, 0x46, 0x86, 0x8a, 0x7f, 0x3a, 0x45, 0xa9, 0x67, + 0x68, 0xd4, 0x0f, 0xd9, 0xd0, 0x34, 0x12, 0xc0, 0x91, 0xc6, 0x31, 0x5c, 0xf4, 0xfd, + 0xe7, 0xcb, 0x68, 0x60, 0x69, 0x37, 0x38, 0x0d, 0xb2, 0xea, 0xaa, 0x70, 0x7b, 0x4c, + 0x41, 0x85, 0xc3, 0x2e, 0xdd, 0xcd, 0xd3, 0x06, 0x70, 0x5e, 0x4d, 0xc1, 0xff, 0xc8, + 0x72, 0xee, 0xee, 0x47, 0x5a, 0x64, 0xdf, 0xac, 0x86, 0xab, 0xa4, 0x1c, 0x06, 0x18, + 0x98, 0x3f, 0x87, 0x41, 0xc5, 0xef, 0x68, 0xd3, 0xa1, 0x01, 0xe8, 0xa3, 0xb8, 0xca, + 0xc6, 0x0c, 0x90, 0x5c, 0x15, 0xfc, 0x91, 0x08, 0x40, 0xb9, 0x4c, 0x00, 0xa0, 0xb9, + 0xd0, + ], + sig: &[ + 0x0a, 0xab, 0x4c, 0x90, 0x05, 0x01, 0xb3, 0xe2, 0x4d, 0x7c, 0xdf, 0x46, 0x63, 0x32, + 0x6a, 0x3a, 0x87, 0xdf, 0x5e, 0x48, 0x43, 0xb2, 0xcb, 0xdb, 0x67, 0xcb, 0xf6, 0xe4, + 0x60, 0xfe, 0xc3, 0x50, 0xaa, 0x53, 0x71, 0xb1, 0x50, 0x8f, 0x9f, 0x45, 0x28, 0xec, + 0xea, 0x23, 0xc4, 0x36, 0xd9, 0x4b, 0x5e, 0x8f, 0xcd, 0x4f, 0x68, 0x1e, 0x30, 0xa6, + 0xac, 0x00, 0xa9, 0x70, 0x4a, 0x18, 0x8a, 0x03, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 84, + comment: "Signature with S just under the bound. [David Benjamin]", + public_key: &[ + 0x10, 0x0f, 0xdf, 0x47, 0xfb, 0x94, 0xf1, 0x53, 0x6a, 0x4f, 0x7c, 0x3f, 0xda, 0x27, + 0x38, 0x3f, 0xa0, 0x33, 0x75, 0xa8, 0xf5, 0x27, 0xc5, 0x37, 0xe6, 0xf1, 0x70, 0x3c, + 0x47, 0xf9, 0x4f, 0x86, + ], + msg: &[ + 0x12, 0x4e, 0x58, 0x3f, 0x8b, 0x8e, 0xca, 0x58, 0xbb, 0x29, 0xc2, 0x71, 0xb4, 0x1d, + 0x36, 0x98, 0x6b, 0xbc, 0x45, 0x54, 0x1f, 0x8e, 0x51, 0xf9, 0xcb, 0x01, 0x33, 0xec, + 0xa4, 0x47, 0x60, 0x1e, + ], + sig: &[ + 0xda, 0xc1, 0x19, 0xd6, 0xca, 0x87, 0xfc, 0x59, 0xae, 0x61, 0x1c, 0x15, 0x70, 0x48, + 0xf4, 0xd4, 0xfc, 0x93, 0x2a, 0x14, 0x9d, 0xbe, 0x20, 0xec, 0x6e, 0xff, 0xd1, 0x43, + 0x6a, 0xbf, 0x83, 0xea, 0x05, 0xc7, 0xdf, 0x0f, 0xef, 0x06, 0x14, 0x72, 0x41, 0x25, + 0x91, 0x13, 0x90, 0x9b, 0xc7, 0x1b, 0xd3, 0xc5, 0x3b, 0xa4, 0x46, 0x4f, 0xfc, 0xad, + 0x3c, 0x09, 0x68, 0xf2, 0xff, 0xff, 0xff, 0x0f, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 85, + comment: "Signature with S just above the bound. [David Benjamin]", + public_key: &[ + 0x10, 0x0f, 0xdf, 0x47, 0xfb, 0x94, 0xf1, 0x53, 0x6a, 0x4f, 0x7c, 0x3f, 0xda, 0x27, + 0x38, 0x3f, 0xa0, 0x33, 0x75, 0xa8, 0xf5, 0x27, 0xc5, 0x37, 0xe6, 0xf1, 0x70, 0x3c, + 0x47, 0xf9, 0x4f, 0x86, + ], + msg: &[ + 0x6a, 0x0b, 0xc2, 0xb0, 0x05, 0x7c, 0xed, 0xfc, 0x0f, 0xa2, 0xe3, 0xf7, 0xf7, 0xd3, + 0x92, 0x79, 0xb3, 0x0f, 0x45, 0x4a, 0x69, 0xdf, 0xd1, 0x11, 0x7c, 0x75, 0x8d, 0x86, + 0xb1, 0x9d, 0x85, 0xe0, + ], + sig: &[ + 0x09, 0x71, 0xf8, 0x6d, 0x2c, 0x9c, 0x78, 0x58, 0x25, 0x24, 0xa1, 0x03, 0xcb, 0x9c, + 0xf9, 0x49, 0x52, 0x2a, 0xe5, 0x28, 0xf8, 0x05, 0x4d, 0xc2, 0x01, 0x07, 0xd9, 0x99, + 0xbe, 0x67, 0x3f, 0xf4, 0xe2, 0x5e, 0xbf, 0x2f, 0x29, 0x28, 0x76, 0x6b, 0x12, 0x48, + 0xbe, 0xc6, 0xe9, 0x16, 0x97, 0x77, 0x5f, 0x84, 0x46, 0x63, 0x9e, 0xde, 0x46, 0xad, + 0x4d, 0xf4, 0x05, 0x30, 0x00, 0x00, 0x00, 0x10, + ], + result: Verdict::Invalid, + flags: &["InvalidKtv"], + }, + Vector { + tc_id: 86, + comment: "Random test failure 1", + public_key: &[ + 0x8f, 0xd6, 0x59, 0xb7, 0x7b, 0x55, 0x8e, 0xd9, 0x38, 0x82, 0xc1, 0x15, 0x74, 0x38, + 0x45, 0x0a, 0xc8, 0x6e, 0xc6, 0x2d, 0x42, 0x1d, 0x56, 0x8e, 0x98, 0xee, 0x23, 0x6f, + 0x38, 0x10, 0x29, 0x5a, + ], + msg: &[ + 0xb0, 0x72, 0x9a, 0x71, 0x35, 0x93, 0xa9, 0x2e, 0x46, 0xb5, 0x6e, 0xaa, 0x66, 0xb9, + 0xe4, 0x35, 0xf7, 0xa0, 0x9a, 0x8e, 0x7d, 0xe0, 0x3b, 0x07, 0x8f, 0x6f, 0x28, 0x22, + 0x85, 0x27, 0x66, 0x35, 0xf3, 0x01, 0xe7, 0xaa, 0xaf, 0xe4, 0x21, 0x87, 0xc4, 0x5d, + 0x6f, 0x5b, 0x13, 0xf9, 0xf1, 0x6b, 0x11, 0x19, 0x5c, 0xc1, 0x25, 0xc0, 0x5b, 0x90, + 0xd2, 0x4d, 0xfe, 0x4c, + ], + sig: &[ + 0x7d, 0xb1, 0x75, 0x57, 0xac, 0x47, 0x0c, 0x0e, 0xda, 0x4e, 0xed, 0xaa, 0xbc, 0xe9, + 0x91, 0x97, 0xab, 0x62, 0x56, 0x56, 0x53, 0xcf, 0x91, 0x1f, 0x63, 0x2e, 0xe8, 0xbe, + 0x0e, 0x5f, 0xfc, 0xfc, 0x88, 0xfb, 0x94, 0x27, 0x6b, 0x42, 0xe0, 0x79, 0x8f, 0xd3, + 0xaa, 0x2f, 0x03, 0x18, 0xbe, 0x7f, 0xc6, 0xa2, 0x9f, 0xae, 0x75, 0xf7, 0x0c, 0x3d, + 0xcd, 0xc4, 0x14, 0xa0, 0xad, 0x86, 0x66, 0x01, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 87, + comment: "Random test failure 2", + public_key: &[ + 0x2a, 0x60, 0x6b, 0xf6, 0x7a, 0xc7, 0x70, 0xc6, 0x07, 0x03, 0x8b, 0x00, 0x41, 0x01, + 0xb3, 0x25, 0xed, 0xb5, 0x69, 0xef, 0xd3, 0x41, 0x3d, 0x2d, 0x1f, 0x2c, 0x3e, 0x6b, + 0x4e, 0x6e, 0x30, 0x82, + ], + msg: &[ + 0xa8, 0x54, 0x6e, 0x50, 0xba, 0x31, 0xca, 0xe3, 0x23, 0x43, 0x10, 0xd3, 0x26, 0x72, + 0x44, 0x7b, 0xe2, 0x13, 0xfa, 0xd9, 0x1a, 0x22, 0x7a, 0x19, 0x66, 0x9c, 0x53, 0xd3, + 0x09, 0xb9, 0x59, 0x78, 0x2b, 0x0e, 0x6b, 0x71, 0xf8, 0x79, 0x1f, 0xdb, 0x47, 0x00, + 0x43, 0xb5, 0x81, 0x22, 0x00, 0x31, 0x57, 0xd2, 0xd9, 0x6a, 0x43, 0xa6, 0xcb, 0xd7, + 0xd3, 0xa8, 0xd8, 0x6b, 0xf4, 0xc9, 0x73, 0x91, 0x88, 0x3e, 0x26, 0x8d, 0x50, 0xaf, + 0x80, 0xe1, 0xe6, 0xe1, 0x29, 0x39, 0xc2, 0xbd, 0x50, 0xca, 0x74, 0x6c, 0xda, 0xdf, + 0xad, 0x4e, 0xdf, 0x1b, 0xda, 0x87, 0x52, 0x99, 0x74, 0x07, 0x24, 0x14, 0x8e, 0xfb, + 0x1e, 0xbe, 0x73, 0xfb, 0x60, 0x08, 0x8c, 0xda, 0x89, 0x03, 0x17, 0x65, 0x86, 0x27, + 0xa5, 0xf7, 0xab, 0x5a, 0x0c, 0x07, 0x5d, 0x9d, 0x8f, 0x3f, 0x97, 0xb6, 0x49, 0x2b, + 0x35, 0x51, 0x9e, 0x50, 0xff, 0x6b, 0x38, 0x37, 0x74, 0x32, 0xa7, 0x08, 0x1f, 0x91, + 0x76, 0xbb, 0x1c, 0x29, 0xa8, 0x62, 0xde, 0xac, 0x13, 0x36, 0xca, 0x20, 0xb0, 0x97, + 0xa4, 0x78, 0x29, 0xce, 0xc1, 0x0a, 0x6a, 0x7c, 0xec, 0x17, 0x8e, 0xda, 0x2d, 0x12, + 0xf6, 0xdc, 0x6c, 0x87, 0xf9, 0x10, 0x45, 0x4a, 0xf0, 0x12, 0x35, 0x55, 0xba, 0x18, + 0x4e, 0x68, 0x80, 0x4d, 0x9c, 0xce, 0xd6, 0x0f, 0xd5, 0xc8, 0xc9, 0x09, 0x43, 0xe5, + 0x65, 0x99, 0xc8, 0xf0, 0xba, 0x59, 0xa3, 0x84, 0x91, 0xba, 0x5e, 0x5a, 0x53, 0x46, + 0x06, 0x82, 0x47, 0x4c, 0x07, 0xe4, 0x0c, 0xa1, 0x42, 0x98, 0x33, 0x14, 0xfd, 0x76, + 0x28, 0x56, 0xbb, 0x10, 0x93, 0xf3, 0x59, 0xda, 0x6e, 0xb0, 0xa7, 0x56, 0xbd, 0x93, + 0xa3, 0x16, 0x0c, 0x10, 0xdd, 0x8f, 0xee, 0xa6, 0xb9, 0x7e, 0x7c, 0x6a, 0x17, 0xcb, + 0x54, 0xbd, 0x5d, 0x76, 0x49, 0xc0, 0x5c, 0x66, 0xd7, 0xbd, 0xee, 0x05, 0x66, 0x71, + 0xdf, 0xda, 0xf6, 0x89, 0xfa, 0x39, 0x45, 0xbb, 0x8e, 0x29, 0xa4, 0x29, 0xf4, 0xbd, + 0x5d, 0x35, 0x5d, 0xce, 0x96, 0x87, 0xb0, 0x6f, 0x01, 0xd5, 0xe3, 0x3e, 0x39, 0x99, + 0xf0, 0xe8, + ], + sig: &[ + 0x67, 0xd8, 0x4d, 0x4c, 0x39, 0x45, 0xaa, 0xf0, 0x6e, 0x06, 0xd5, 0x24, 0xbe, 0x63, + 0xac, 0xbf, 0xb5, 0xdb, 0xb1, 0x98, 0x8c, 0x4a, 0xea, 0x96, 0xa5, 0xee, 0x9f, 0x7a, + 0x9b, 0x9e, 0xec, 0xc2, 0x9d, 0xf4, 0xf6, 0x6b, 0x8a, 0xa1, 0xd9, 0xe8, 0x60, 0x7a, + 0x58, 0xfb, 0x1e, 0xf0, 0xc2, 0xad, 0x69, 0xaa, 0xc0, 0x05, 0xb4, 0xf5, 0x8e, 0x34, + 0x10, 0x33, 0x44, 0xa9, 0xc8, 0x87, 0x1a, 0x09, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 88, + comment: "Random test failure 3", + public_key: &[ + 0xc9, 0xc9, 0x46, 0xcb, 0xc5, 0x54, 0x4a, 0xc7, 0x4e, 0xef, 0x49, 0x1f, 0x07, 0xc5, + 0x88, 0x1c, 0x16, 0xfa, 0xf7, 0xec, 0x31, 0xce, 0x4a, 0xa9, 0x1b, 0xb6, 0x0a, 0xe7, + 0xb4, 0x53, 0x90, 0x51, + ], + msg: &[ + 0xcd, 0x22, 0x12, 0xed, 0xdb, 0x07, 0x06, 0xf6, 0x2c, 0x99, 0x5c, 0xef, 0x95, 0x86, + 0x34, 0xf0, 0xcb, 0x77, 0x93, 0x44, 0x4c, 0xbf, 0x4d, 0x30, 0xe8, 0x1c, 0x27, 0xc4, + 0x1e, 0xbe, 0xa6, 0xcb, 0x02, 0x60, 0x75, 0x10, 0x13, 0x1f, 0x9c, 0x01, 0x56, 0x92, + 0xdf, 0xd5, 0x21, 0xb1, 0x48, 0x84, 0x1e, 0x9a, 0x2d, 0x35, 0x64, 0xd2, 0x0a, 0xc4, + 0x01, 0xf6, 0xcb, 0x8e, 0x40, 0xf5, 0x20, 0xfe, 0x0c, 0xaf, 0xbe, 0xaa, 0x88, 0x84, + 0x0b, 0x83, 0x01, 0x33, 0x69, 0xd8, 0x79, 0xf0, 0x13, 0x46, 0x3f, 0xe5, 0x2a, 0x13, + 0x26, 0x7a, 0xa0, 0xc8, 0xc5, 0x9c, 0x45, 0xcd, 0xe9, 0x39, 0x9c, 0xd1, 0xe6, 0xbe, + 0x8c, 0xc6, 0x4c, 0xf4, 0x83, 0x15, 0xac, 0x2e, 0xb3, 0x1a, 0x1c, 0x56, 0x7a, 0x4f, + 0xb7, 0xd6, 0x01, 0x74, 0x6d, 0x1f, 0x63, 0xb5, 0xac, 0x02, 0x07, 0x12, 0xad, 0xbb, + 0xe0, 0x75, 0x19, 0xbd, 0xed, 0x6f, + ], + sig: &[ + 0x24, 0x08, 0x7d, 0x47, 0xf3, 0xe2, 0x0a, 0xf5, 0x1b, 0x96, 0x68, 0xae, 0x0a, 0x88, + 0xce, 0x76, 0x58, 0x68, 0x02, 0xd0, 0xec, 0x75, 0xd8, 0xc0, 0xf2, 0x8f, 0xc3, 0x09, + 0x62, 0xb5, 0xe1, 0xd1, 0xa1, 0xd5, 0x09, 0x57, 0x1a, 0x16, 0x24, 0xed, 0x12, 0x5a, + 0x8d, 0xf9, 0x2a, 0x6e, 0x96, 0x37, 0x28, 0xd6, 0xb5, 0xde, 0x99, 0x20, 0x0b, 0x8e, + 0x28, 0x5f, 0x70, 0xfe, 0xb6, 0xf0, 0x52, 0x07, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 89, + comment: "Random test failure 4", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[0xec, 0x5c, 0x7c, 0xb0, 0x78], + sig: &[ + 0xd9, 0x20, 0xd4, 0x21, 0xa5, 0x95, 0x6b, 0x69, 0xbf, 0xe1, 0xba, 0x83, 0x4c, 0x02, + 0x5e, 0x2b, 0xab, 0xb6, 0xc7, 0xa6, 0xd7, 0x8c, 0x97, 0xde, 0x1d, 0x9b, 0xb1, 0x11, + 0x6d, 0xfd, 0xd1, 0x18, 0x51, 0x47, 0xb2, 0x88, 0x7e, 0x34, 0xe1, 0x55, 0x78, 0x17, + 0x2e, 0x15, 0x07, 0x74, 0x27, 0x5e, 0xa2, 0xaa, 0xd9, 0xe0, 0x21, 0x06, 0xf7, 0xe8, + 0xca, 0x1c, 0xaa, 0x66, 0x9a, 0x06, 0x6f, 0x0c, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 90, + comment: "Random test failure 5", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[ + 0x46, 0x68, 0xc6, 0xa7, 0x6f, 0x0e, 0x48, 0x21, 0x90, 0xa7, 0x17, 0x5b, 0x9f, 0x38, + 0x06, 0xa5, 0xfe, 0x43, 0x14, 0xa0, 0x04, 0xfa, 0x69, 0xf9, 0x88, 0x37, 0x3f, 0x7a, + ], + sig: &[ + 0x4f, 0x62, 0xda, 0xf7, 0xf7, 0xc1, 0x62, 0x03, 0x85, 0x52, 0xad, 0x7d, 0x30, 0x6e, + 0x19, 0x5b, 0xaa, 0x37, 0xec, 0xf6, 0xca, 0x76, 0x04, 0x14, 0x26, 0x79, 0xd7, 0xd1, + 0x12, 0x8e, 0x1f, 0x8a, 0xf5, 0x2e, 0x4c, 0xb3, 0x54, 0x57, 0x48, 0xc4, 0x4e, 0xf1, + 0xff, 0x1c, 0x64, 0xe8, 0x77, 0xe4, 0xf4, 0xd2, 0x48, 0x25, 0x9b, 0x7f, 0x6e, 0xb5, + 0x6e, 0x3e, 0xf7, 0x20, 0x97, 0xdc, 0x8e, 0x0c, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 91, + comment: "Random test failure 6", + public_key: &[ + 0xc2, 0x9e, 0xc1, 0x89, 0x4e, 0x06, 0xd2, 0x7b, 0x4e, 0x40, 0x48, 0x6b, 0x4f, 0xa5, + 0x06, 0x3d, 0x66, 0xa7, 0x46, 0xc7, 0xf9, 0xc3, 0x23, 0xb1, 0x22, 0x03, 0xc0, 0x3b, + 0x72, 0xb8, 0xb7, 0x8a, + ], + msg: &[ + 0x0f, 0x32, 0x5f, 0xfd, 0x87, 0xe5, 0x81, 0x31, 0xff, 0xa2, 0x3c, 0x05, 0xea, 0x45, + 0x79, 0x51, 0x3b, 0x28, 0x7f, 0xdb, 0xa8, 0x7b, 0x44, + ], + sig: &[ + 0x66, 0x69, 0xac, 0xf9, 0x46, 0x67, 0xc5, 0xb5, 0x41, 0xaf, 0xe5, 0x30, 0x7b, 0xde, + 0x94, 0x76, 0xb1, 0x3a, 0xe7, 0xe0, 0xe6, 0x05, 0x8a, 0x77, 0x21, 0x01, 0xac, 0x8e, + 0xb0, 0xa9, 0x43, 0x31, 0x42, 0x8e, 0xb4, 0xdb, 0x0a, 0x2c, 0x68, 0xa9, 0xb6, 0xc1, + 0x76, 0x3b, 0x86, 0x24, 0xda, 0xb2, 0x59, 0xb0, 0x87, 0x6c, 0xdc, 0xfa, 0xea, 0xcc, + 0x17, 0xb2, 0x1a, 0x18, 0xe3, 0xfc, 0x01, 0x0a, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 92, + comment: "Random test failure 7", + public_key: &[ + 0xcf, 0xda, 0x5b, 0x89, 0x9e, 0x35, 0x76, 0x4c, 0x52, 0x29, 0xe5, 0x92, 0x95, 0xfe, + 0x12, 0x22, 0xb7, 0xdd, 0xce, 0x17, 0x66, 0x43, 0x69, 0x7c, 0x29, 0xe4, 0x6e, 0xcb, + 0xba, 0x10, 0xcf, 0x10, + ], + msg: &[0xec, 0x5c, 0x7c, 0xb0, 0x78], + sig: &[ + 0x30, 0x49, 0x0c, 0x28, 0xf8, 0x06, 0x29, 0x82, 0x25, 0xdf, 0x62, 0x10, 0x35, 0x21, + 0xdc, 0xee, 0x04, 0x71, 0x53, 0x91, 0x2c, 0x33, 0xab, 0x8a, 0xb8, 0xbb, 0xdd, 0x1f, + 0xfa, 0xbd, 0x70, 0xfd, 0x4f, 0xdb, 0x36, 0x0f, 0x05, 0xbe, 0x53, 0x5b, 0x06, 0x7d, + 0x1c, 0xf4, 0xe7, 0x8c, 0x2c, 0xb4, 0x32, 0x20, 0x6b, 0xf2, 0x80, 0xaa, 0xb3, 0xbd, + 0x21, 0xaa, 0xa1, 0xcb, 0x89, 0x4c, 0x5b, 0x06, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 93, + comment: "Random test failure 8", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[ + 0x5d, 0xc9, 0xbb, 0x87, 0xeb, 0x11, 0x62, 0x1a, 0x93, 0xf9, 0x2a, 0xbe, 0x53, 0x51, + 0x56, 0x97, 0xd2, 0x61, 0x1b, 0x2e, 0xef, 0x73, + ], + sig: &[ + 0xde, 0xec, 0xaf, 0xb6, 0xf2, 0xed, 0xe7, 0x3f, 0xec, 0x91, 0xa6, 0xf1, 0x0e, 0x45, + 0xb9, 0xc1, 0xc6, 0x1c, 0x4b, 0x9b, 0xfb, 0xe6, 0xb6, 0x14, 0x7e, 0x2d, 0xe0, 0xb1, + 0xdf, 0x69, 0x38, 0x97, 0x1f, 0x78, 0x96, 0xc3, 0xab, 0x83, 0x85, 0x1f, 0xb5, 0xd9, + 0xe5, 0x37, 0x03, 0x7b, 0xff, 0x0f, 0xca, 0x0c, 0xcb, 0x4a, 0x3c, 0xc3, 0x8f, 0x05, + 0x6f, 0x91, 0xf7, 0xd7, 0xa0, 0x55, 0x7e, 0x08, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 94, + comment: "Random test failure 9", + public_key: &[ + 0xcf, 0xda, 0x5b, 0x89, 0x9e, 0x35, 0x76, 0x4c, 0x52, 0x29, 0xe5, 0x92, 0x95, 0xfe, + 0x12, 0x22, 0xb7, 0xdd, 0xce, 0x17, 0x66, 0x43, 0x69, 0x7c, 0x29, 0xe4, 0x6e, 0xcb, + 0xba, 0x10, 0xcf, 0x10, + ], + msg: &[ + 0x67, 0x48, 0x40, 0x59, 0xb2, 0x49, 0x0b, 0x1a, 0x0a, 0x4f, 0x8d, 0xee, 0x77, 0x97, + 0x9e, 0x26, + ], + sig: &[ + 0x4c, 0xd4, 0xf7, 0x7e, 0xd4, 0x73, 0xa6, 0x64, 0x73, 0x87, 0xf3, 0x16, 0x35, 0x41, + 0xc6, 0x7a, 0x17, 0x08, 0xa3, 0xc3, 0xbd, 0x16, 0x73, 0x24, 0x7c, 0xb8, 0x7f, 0x0c, + 0xb6, 0x8b, 0x3c, 0x56, 0xf0, 0x4b, 0xfa, 0x72, 0x97, 0x0c, 0x8a, 0x48, 0x3e, 0xfe, + 0x65, 0x9c, 0x87, 0x00, 0x9a, 0xb4, 0x02, 0x0b, 0x59, 0x0b, 0x66, 0x41, 0x31, 0x6b, + 0x3d, 0xed, 0xdb, 0x54, 0x50, 0x54, 0x4e, 0x02, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 95, + comment: "Random test failure 10", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[ + 0x7d, 0xcf, 0xe6, 0x0f, 0x88, 0x1e, 0x12, 0x85, 0x67, 0x6f, 0x35, 0xb6, 0x8a, 0x1b, + 0x2d, 0xbc, 0xdd, 0x7b, 0xe6, 0xf7, 0x19, 0xa2, 0x88, 0xab, 0xab, 0xc2, 0x8d, 0x36, + 0xe3, 0xa4, 0x2a, 0xc3, 0x01, 0x0a, 0x1c, 0xa5, 0x4b, 0x32, 0x76, 0x0e, 0x74, + ], + sig: &[ + 0x7f, 0x86, 0x63, 0xcf, 0x98, 0xcb, 0xd3, 0x9d, 0x5f, 0xf5, 0x53, 0xf0, 0x0b, 0xcf, + 0x3d, 0x0d, 0x52, 0x06, 0x05, 0x79, 0x4f, 0x88, 0x66, 0xce, 0x75, 0x71, 0x4d, 0x77, + 0xcc, 0x51, 0xe6, 0x6c, 0x91, 0x81, 0x8b, 0x65, 0x7d, 0x7b, 0x0d, 0xae, 0x43, 0x0a, + 0x68, 0x35, 0x35, 0x06, 0xed, 0xc4, 0xa7, 0x14, 0xc3, 0x45, 0xf5, 0xdd, 0xb5, 0xc8, + 0xb9, 0x58, 0xba, 0x3d, 0x03, 0x5f, 0x7a, 0x01, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 96, + comment: "Random test failure 11", + public_key: &[ + 0xcf, 0xda, 0x5b, 0x89, 0x9e, 0x35, 0x76, 0x4c, 0x52, 0x29, 0xe5, 0x92, 0x95, 0xfe, + 0x12, 0x22, 0xb7, 0xdd, 0xce, 0x17, 0x66, 0x43, 0x69, 0x7c, 0x29, 0xe4, 0x6e, 0xcb, + 0xba, 0x10, 0xcf, 0x10, + ], + msg: &[ + 0xa0, 0x20, 0xa4, 0x38, 0x1d, 0xc9, 0x14, 0x1f, 0x47, 0xee, 0x50, 0x88, 0x71, 0xab, + 0x7a, 0x8b, 0x5a, 0x36, 0x48, 0x72, 0x7c, 0x42, 0x81, 0xae, 0x99, 0x32, 0x37, 0x6f, + 0x23, 0xa8, 0xe1, 0xbc, 0xda, 0x06, 0x26, 0xb7, 0x12, 0x91, 0x97, 0xd8, 0x64, 0x17, + 0x86, 0x31, 0xec, 0x89, 0xc4, 0x33, 0x2d, 0xbb, 0x18, + ], + sig: &[ + 0x1e, 0x41, 0xa2, 0x4f, 0xe7, 0x32, 0xbd, 0x7c, 0xab, 0x14, 0xc2, 0xa2, 0xf5, 0x13, + 0x4e, 0xe8, 0xc8, 0x7f, 0xcb, 0xd2, 0xe9, 0x87, 0xe6, 0x09, 0x57, 0xed, 0x92, 0x39, + 0xe5, 0xc3, 0x24, 0x04, 0xd5, 0x69, 0x77, 0xe1, 0xb4, 0x28, 0x28, 0x71, 0x89, 0x6c, + 0xb1, 0x06, 0x25, 0xa1, 0x93, 0x74, 0x68, 0xe4, 0xdc, 0x26, 0x6e, 0x16, 0xa9, 0xc1, + 0xb8, 0xe9, 0x89, 0x11, 0x77, 0xec, 0xa8, 0x02, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 97, + comment: "Random test failure 12", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[ + 0x58, 0xe4, 0x56, 0x06, 0x4d, 0xff, 0x47, 0x11, 0x09, 0xde, 0xf4, 0xca, 0x27, 0xfa, + 0x83, 0x10, 0xa1, 0xdf, 0x32, 0x73, 0x96, 0x55, 0xb6, 0x24, 0xf2, 0x7e, 0x64, 0x18, + 0xd3, 0x4b, 0x7f, 0x00, 0x71, 0x73, 0xf3, 0xfa, 0xa5, + ], + sig: &[ + 0x6a, 0xab, 0x49, 0xe5, 0xc0, 0xbc, 0x30, 0x9b, 0x78, 0x33, 0x78, 0xee, 0x03, 0xff, + 0xda, 0x28, 0x2f, 0x01, 0x85, 0xcd, 0xf9, 0x4c, 0x84, 0x77, 0x01, 0xff, 0x30, 0x7a, + 0x6e, 0xe8, 0xd0, 0x86, 0x54, 0x11, 0xc4, 0x4e, 0x0a, 0x82, 0x06, 0xf6, 0xa5, 0xf6, + 0x06, 0x10, 0x74, 0x51, 0x94, 0x0c, 0x25, 0x93, 0xaf, 0x79, 0x0c, 0xe1, 0x86, 0x0f, + 0x4c, 0x14, 0xab, 0x25, 0xb2, 0xde, 0xae, 0x08, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 98, + comment: "Random test failure 13", + public_key: &[ + 0x52, 0x99, 0x19, 0xc9, 0xc7, 0x80, 0x98, 0x5a, 0x84, 0x1c, 0x42, 0xba, 0x6c, 0x18, + 0x0f, 0xf2, 0xd6, 0x7a, 0x27, 0x6c, 0xcf, 0xbe, 0x28, 0x10, 0x80, 0xe4, 0x7a, 0xb7, + 0x1a, 0x75, 0x8f, 0x56, + ], + msg: &[ + 0xe1, 0xcb, 0xf2, 0xd8, 0x68, 0x27, 0x82, 0x56, 0x13, 0xfb, 0x7a, 0x85, 0x81, 0x1d, + ], + sig: &[ + 0x01, 0xab, 0xfa, 0x4d, 0x6b, 0xbc, 0x72, 0x6b, 0x19, 0x69, 0x28, 0xec, 0x84, 0xfd, + 0x03, 0xf0, 0xc9, 0x53, 0xa4, 0xfa, 0x2b, 0x22, 0x82, 0x49, 0x56, 0x2f, 0xf1, 0x44, + 0x2a, 0x4f, 0x63, 0xa7, 0x15, 0x0b, 0x06, 0x4f, 0x37, 0x12, 0xb5, 0x1c, 0x2a, 0xf7, + 0x68, 0xd2, 0xc2, 0x71, 0x1a, 0x71, 0xaa, 0xbf, 0x8d, 0x18, 0x68, 0x33, 0xe9, 0x41, + 0xa0, 0x30, 0x1b, 0x82, 0xf0, 0x50, 0x29, 0x05, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 99, + comment: "Random test failure 14", + public_key: &[ + 0xcf, 0xda, 0x5b, 0x89, 0x9e, 0x35, 0x76, 0x4c, 0x52, 0x29, 0xe5, 0x92, 0x95, 0xfe, + 0x12, 0x22, 0xb7, 0xdd, 0xce, 0x17, 0x66, 0x43, 0x69, 0x7c, 0x29, 0xe4, 0x6e, 0xcb, + 0xba, 0x10, 0xcf, 0x10, + ], + msg: &[ + 0xa2, 0x51, 0x76, 0xb3, 0xaf, 0xea, 0x31, 0x8b, 0x2e, 0xc1, 0x1d, 0xda, 0xcb, 0x10, + 0xca, 0xf7, 0x17, 0x9c, 0x0b, 0x3f, 0x8e, 0xab, 0xbf, 0xa2, 0x89, 0x55, 0x81, 0x13, + 0x8d, 0x3c, 0x1e, 0x0e, + ], + sig: &[ + 0x2a, 0x83, 0x3a, 0xad, 0xec, 0xd9, 0xf2, 0x82, 0x35, 0xcb, 0x58, 0x96, 0xbf, 0x37, + 0x81, 0x52, 0x1d, 0xc7, 0x1f, 0x28, 0xaf, 0x2e, 0x91, 0xdb, 0xe1, 0x73, 0x5a, 0x61, + 0xdc, 0xe3, 0xe3, 0x1a, 0xc1, 0x5c, 0xa2, 0x4b, 0x3f, 0xc4, 0x78, 0x17, 0xa5, 0x9d, + 0x38, 0x6b, 0xbb, 0xb2, 0xce, 0x60, 0xa6, 0xad, 0xc0, 0xa2, 0x70, 0x3b, 0xb2, 0xbd, + 0xea, 0x8f, 0x70, 0xf9, 0x10, 0x51, 0xf7, 0x06, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 100, + comment: "Random test failure 15", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[0xa1], + sig: &[ + 0x1a, 0x74, 0xed, 0x2c, 0xbd, 0xc7, 0xd8, 0xf3, 0x82, 0x70, 0x14, 0xe8, 0xe6, 0xec, + 0xf8, 0xfd, 0x26, 0x98, 0xac, 0x8f, 0x86, 0x83, 0x3a, 0xcc, 0xcd, 0xd4, 0x00, 0xdf, + 0x71, 0x0f, 0xe0, 0xd6, 0xb0, 0x54, 0x3c, 0x9c, 0xfa, 0x00, 0xd5, 0x2b, 0xf0, 0x24, + 0xab, 0x7c, 0xe0, 0xd9, 0x19, 0x81, 0x94, 0x40, 0x97, 0x23, 0x3e, 0xc1, 0x34, 0xd5, + 0xc7, 0xab, 0xbd, 0x44, 0xbf, 0xd3, 0x2d, 0x0d, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 101, + comment: "Random test failure 16", + public_key: &[ + 0x22, 0x52, 0xb3, 0xd5, 0x7c, 0x74, 0xcb, 0xf8, 0xbc, 0x46, 0x0d, 0xc2, 0xe0, 0x82, + 0x84, 0x79, 0x26, 0xbc, 0x02, 0x2f, 0x09, 0xab, 0x6a, 0xe9, 0x57, 0x56, 0x36, 0x2b, + 0xfd, 0x11, 0x67, 0xc1, + ], + msg: &[ + 0x97, 0x5e, 0xf9, 0x41, 0x71, 0x00, 0x71, 0xa9, 0xe1, 0xe6, 0x32, 0x5a, 0x0c, 0x86, + 0x0b, 0xec, 0xd7, 0xc6, 0x95, 0xb5, 0x11, 0x7c, 0x31, 0x07, 0xb6, 0x86, 0xe3, 0x30, + 0xe5, + ], + sig: &[ + 0xaf, 0x0f, 0xd9, 0xdd, 0xa7, 0xe0, 0x3e, 0x12, 0x31, 0x34, 0x10, 0xd8, 0xd8, 0x84, + 0x4e, 0xbb, 0x6f, 0xe6, 0xb7, 0xf6, 0x51, 0x41, 0xf2, 0x2d, 0x7b, 0xcb, 0xa5, 0x69, + 0x5a, 0x25, 0x41, 0x4a, 0x9e, 0x54, 0x32, 0x6f, 0xb4, 0x4d, 0x59, 0xfb, 0x14, 0x70, + 0x78, 0x99, 0xa8, 0xaa, 0xe7, 0x08, 0x57, 0xb2, 0x3d, 0x40, 0x80, 0xd7, 0xab, 0x2c, + 0x39, 0x6e, 0xf3, 0xa3, 0x6d, 0x45, 0xce, 0x02, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 102, + comment: "Random test failure 17", + public_key: &[ + 0xc0, 0xa7, 0x73, 0x11, 0x0f, 0x97, 0x5d, 0xe3, 0x73, 0x23, 0x55, 0xbb, 0x7e, 0xc7, + 0xf0, 0xc4, 0x1c, 0x09, 0x1c, 0x02, 0x52, 0x96, 0x60, 0x70, 0x20, 0x55, 0x16, 0x69, + 0x3b, 0x99, 0x2a, 0x4a, + ], + msg: &[], + sig: &[ + 0x02, 0x80, 0x42, 0x7e, 0x71, 0x33, 0x78, 0xf4, 0x9d, 0x47, 0x8d, 0xf6, 0x37, 0x3c, + 0x6c, 0xac, 0x84, 0x7b, 0x62, 0x2b, 0x56, 0x7d, 0xaa, 0x23, 0x76, 0xc8, 0x39, 0xe7, + 0xac, 0x10, 0xe2, 0x2c, 0x38, 0x0a, 0xb0, 0xfa, 0x86, 0x17, 0xc9, 0xdc, 0xfe, 0x76, + 0xc4, 0xd9, 0xdb, 0x54, 0x59, 0xb2, 0x1d, 0xc1, 0x41, 0x37, 0x26, 0xe4, 0x6c, 0xc8, + 0xf3, 0x87, 0xd3, 0x59, 0xe3, 0x44, 0xf4, 0x07, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 103, + comment: "Random test failure 18", + public_key: &[ + 0xcf, 0xda, 0x5b, 0x89, 0x9e, 0x35, 0x76, 0x4c, 0x52, 0x29, 0xe5, 0x92, 0x95, 0xfe, + 0x12, 0x22, 0xb7, 0xdd, 0xce, 0x17, 0x66, 0x43, 0x69, 0x7c, 0x29, 0xe4, 0x6e, 0xcb, + 0xba, 0x10, 0xcf, 0x10, + ], + msg: &[ + 0xa9, 0xe6, 0xd9, 0x48, 0x70, 0xa6, 0x7a, 0x9f, 0xe1, 0xcf, 0x13, 0xb1, 0xe6, 0xf9, + 0x15, 0x0c, 0xdd, 0x40, 0x7b, 0xf6, 0x48, 0x0e, 0xc8, 0x41, 0xea, 0x58, 0x6a, 0xe3, + 0x93, 0x5e, 0x97, 0x87, 0x16, 0x3c, 0xf4, 0x19, 0xc1, + ], + sig: &[ + 0xc9, 0x7e, 0x31, 0x90, 0xf8, 0x3b, 0xae, 0x77, 0x29, 0xba, 0x47, 0x3a, 0xd4, 0x6b, + 0x42, 0x0b, 0x8a, 0xad, 0x73, 0x5f, 0x08, 0x08, 0xea, 0x42, 0xc0, 0xf8, 0x98, 0xcc, + 0xfe, 0x6a, 0xdd, 0xd4, 0xfd, 0x9d, 0x9f, 0xa3, 0x35, 0x5d, 0x5e, 0x67, 0xee, 0x21, + 0xab, 0x7e, 0x1f, 0x80, 0x5c, 0xd0, 0x7f, 0x1f, 0xce, 0x98, 0x0e, 0x30, 0x7f, 0x4d, + 0x7a, 0xd3, 0x6c, 0xc9, 0x24, 0xee, 0xf0, 0x0c, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 104, + comment: "Random test failure 19", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[ + 0x11, 0xcb, 0x1e, 0xaf, 0xa4, 0xc4, 0x2a, 0x84, 0x02, 0xc4, 0x19, 0x3c, 0x46, 0x96, + 0xf7, 0xb2, 0xe6, 0xd4, 0x58, 0x5e, 0x4b, 0x42, 0xdc, 0xf1, 0xa8, 0xb6, 0x7a, 0x80, + 0xb2, 0xda, 0x80, 0xbc, 0x9d, 0x4b, 0x64, 0x9f, 0xb2, 0xf3, 0x5e, 0xaf, 0x1f, 0x56, + 0xc4, 0x26, 0xfd, 0x0b, + ], + sig: &[ + 0x14, 0xce, 0xb2, 0xea, 0xf4, 0x68, 0x8d, 0x99, 0x5d, 0x48, 0x2f, 0x44, 0x85, 0x2d, + 0x71, 0xad, 0x87, 0x8c, 0xd7, 0xc7, 0x7b, 0x41, 0xe6, 0x0b, 0x00, 0x65, 0xfd, 0x01, + 0xa5, 0x9b, 0x05, 0x4e, 0xe7, 0x47, 0x59, 0x22, 0x41, 0x87, 0xdb, 0xde, 0x9e, 0x59, + 0xa7, 0x63, 0xa7, 0x02, 0x77, 0xc9, 0x60, 0x89, 0x2e, 0xf8, 0x9f, 0xba, 0x99, 0x7a, + 0xba, 0x25, 0x76, 0xb2, 0xc5, 0x4b, 0xa6, 0x08, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 105, + comment: "Random test failure 20", + public_key: &[ + 0xc9, 0xc9, 0x46, 0xcb, 0xc5, 0x54, 0x4a, 0xc7, 0x4e, 0xef, 0x49, 0x1f, 0x07, 0xc5, + 0x88, 0x1c, 0x16, 0xfa, 0xf7, 0xec, 0x31, 0xce, 0x4a, 0xa9, 0x1b, 0xb6, 0x0a, 0xe7, + 0xb4, 0x53, 0x90, 0x51, + ], + msg: &[ + 0x27, 0xd4, 0x65, 0xbc, 0x63, 0x27, 0x43, 0x52, 0x2a, 0xef, 0xa2, 0x3c, + ], + sig: &[ + 0xc2, 0x65, 0x69, 0x51, 0xe2, 0xa0, 0x28, 0x55, 0x85, 0xa5, 0x1f, 0xf0, 0xed, 0xa7, + 0xe9, 0xa2, 0x3c, 0x2d, 0xfd, 0x2f, 0xfa, 0x27, 0x3a, 0xee, 0x78, 0x08, 0xf4, 0x60, + 0x4e, 0x8f, 0x9a, 0x8c, 0x8e, 0xa4, 0x9e, 0x9f, 0xce, 0x4e, 0xb2, 0xd8, 0xd7, 0x5d, + 0x36, 0xb7, 0x23, 0x8f, 0xe6, 0xfc, 0x13, 0xb6, 0xc5, 0xd9, 0x42, 0x7d, 0xd5, 0x8f, + 0x8c, 0x66, 0x15, 0xd0, 0x33, 0xc0, 0xbd, 0x0f, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 106, + comment: "Random test failure 21", + public_key: &[ + 0xc2, 0x9e, 0xc1, 0x89, 0x4e, 0x06, 0xd2, 0x7b, 0x4e, 0x40, 0x48, 0x6b, 0x4f, 0xa5, + 0x06, 0x3d, 0x66, 0xa7, 0x46, 0xc7, 0xf9, 0xc3, 0x23, 0xb1, 0x22, 0x03, 0xc0, 0x3b, + 0x72, 0xb8, 0xb7, 0x8a, + ], + msg: &[0x5f, 0xfa], + sig: &[ + 0x93, 0x1e, 0x51, 0x52, 0xfc, 0xef, 0x07, 0x8c, 0x22, 0xcc, 0x5d, 0x6a, 0x3a, 0x65, + 0xf0, 0x6e, 0x39, 0x62, 0x89, 0xf6, 0xf5, 0xf2, 0xd1, 0xef, 0xa6, 0x34, 0x02, 0x54, + 0xa5, 0x35, 0x26, 0xef, 0x5d, 0xc6, 0x87, 0x4e, 0xed, 0xdf, 0x35, 0xc3, 0xf5, 0x09, + 0x91, 0xc5, 0x3c, 0xd0, 0x2b, 0xf0, 0x63, 0x13, 0xe3, 0x7d, 0x93, 0xee, 0x1f, 0x70, + 0x22, 0x12, 0x8f, 0xfa, 0x3b, 0x8f, 0x30, 0x0b, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 107, + comment: "Random test failure 22", + public_key: &[ + 0x52, 0x99, 0x19, 0xc9, 0xc7, 0x80, 0x98, 0x5a, 0x84, 0x1c, 0x42, 0xba, 0x6c, 0x18, + 0x0f, 0xf2, 0xd6, 0x7a, 0x27, 0x6c, 0xcf, 0xbe, 0x28, 0x10, 0x80, 0xe4, 0x7a, 0xb7, + 0x1a, 0x75, 0x8f, 0x56, + ], + msg: &[0x25], + sig: &[ + 0xe4, 0xae, 0x21, 0xf7, 0xa8, 0xf4, 0xb3, 0xb3, 0x25, 0xc1, 0x61, 0xa8, 0xc6, 0xe5, + 0x3e, 0x2e, 0xdd, 0x70, 0x05, 0xb9, 0xc2, 0xf8, 0xa2, 0xe3, 0xb0, 0xac, 0x4b, 0xa9, + 0x4a, 0xa8, 0x0b, 0xe6, 0xf2, 0xee, 0x22, 0xac, 0x8d, 0x4a, 0x96, 0xb9, 0xa3, 0xeb, + 0x73, 0xa8, 0x25, 0xe7, 0xbb, 0x5a, 0xff, 0x4a, 0x33, 0x93, 0xbf, 0x5b, 0x4a, 0x38, + 0x11, 0x9e, 0x9c, 0x9b, 0x1b, 0x04, 0x11, 0x06, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 108, + comment: "Random test failure 23", + public_key: &[ + 0x22, 0x52, 0xb3, 0xd5, 0x7c, 0x74, 0xcb, 0xf8, 0xbc, 0x46, 0x0d, 0xc2, 0xe0, 0x82, + 0x84, 0x79, 0x26, 0xbc, 0x02, 0x2f, 0x09, 0xab, 0x6a, 0xe9, 0x57, 0x56, 0x36, 0x2b, + 0xfd, 0x11, 0x67, 0xc1, + ], + msg: &[ + 0x80, 0xfd, 0xd6, 0x21, 0x8f, 0x29, 0xc8, 0xc8, 0xf6, 0xbd, 0x82, 0x09, 0x45, 0xf9, + 0xb0, 0x85, 0x4e, 0x3a, 0x88, 0x24, + ], + sig: &[ + 0xe0, 0x97, 0xe0, 0xbd, 0x03, 0x70, 0xbf, 0xf5, 0xbd, 0xe3, 0x59, 0x17, 0x5a, 0x11, + 0xb7, 0x28, 0xee, 0x96, 0x39, 0x09, 0x5d, 0x5d, 0xf8, 0xed, 0xa4, 0x96, 0x39, 0x55, + 0x65, 0x61, 0x6e, 0xdf, 0xe0, 0x79, 0x97, 0x7f, 0x7d, 0x4d, 0xc8, 0xc7, 0x5d, 0x61, + 0x13, 0xa8, 0x3d, 0x6a, 0x55, 0xe6, 0xe1, 0x67, 0x64, 0x08, 0xc0, 0x96, 0x7a, 0x29, + 0x06, 0x33, 0x9b, 0x43, 0x33, 0x7d, 0xcb, 0x01, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 109, + comment: "Random test failure 24", + public_key: &[ + 0x2a, 0x60, 0x6b, 0xf6, 0x7a, 0xc7, 0x70, 0xc6, 0x07, 0x03, 0x8b, 0x00, 0x41, 0x01, + 0xb3, 0x25, 0xed, 0xb5, 0x69, 0xef, 0xd3, 0x41, 0x3d, 0x2d, 0x1f, 0x2c, 0x3e, 0x6b, + 0x4e, 0x6e, 0x30, 0x82, + ], + msg: &[ + 0xb4, 0x77, 0xb0, 0x48, 0x0b, 0xb8, 0x46, 0x42, 0x60, 0x8b, 0x90, 0x8d, 0x29, 0xa5, + 0x1c, 0xf2, 0xfc, 0xe6, 0x3f, 0x24, 0xee, 0x95, + ], + sig: &[ + 0x28, 0xfa, 0xfb, 0xb6, 0x2b, 0x4d, 0x68, 0x8f, 0xa7, 0x9e, 0x1a, 0xc9, 0x28, 0x51, + 0xf4, 0x6e, 0x31, 0x9b, 0x16, 0x1f, 0x80, 0x1d, 0x4d, 0xc0, 0x9a, 0xcc, 0x21, 0xfd, + 0xd6, 0x78, 0x0a, 0x2c, 0x42, 0x92, 0xb8, 0xc1, 0x00, 0x3c, 0x61, 0xc2, 0xbc, 0xeb, + 0xe7, 0xf3, 0xf8, 0x8c, 0xcc, 0x4b, 0xb2, 0x6d, 0x40, 0x73, 0x87, 0xc5, 0xf2, 0x7c, + 0xb8, 0xc9, 0x4c, 0xf6, 0xce, 0x81, 0x04, 0x05, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 110, + comment: "Random test failure 25", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[0xaa, 0x36, 0x5b, 0x44, 0x2d, 0x12, 0xb7, 0xf3, 0xc9, 0x25], + sig: &[ + 0x83, 0xc4, 0x0c, 0xe1, 0x3d, 0x48, 0x3c, 0xc5, 0x8f, 0xf6, 0x58, 0x44, 0x87, 0x58, + 0x62, 0xd9, 0x3d, 0xf4, 0xbd, 0x36, 0x7a, 0xf7, 0x7e, 0xfa, 0x46, 0x9e, 0xc0, 0x6a, + 0x8e, 0xd9, 0xe6, 0xd7, 0x90, 0x5a, 0x04, 0x87, 0x95, 0x35, 0x70, 0x8d, 0xdf, 0x22, + 0x55, 0x67, 0xa8, 0x15, 0xc9, 0xb9, 0x41, 0xd4, 0x05, 0xc9, 0x8e, 0x91, 0x8f, 0xd0, + 0xc1, 0x51, 0x16, 0x5c, 0xea, 0x7f, 0xb1, 0x01, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 111, + comment: "Random test failure 26", + public_key: &[ + 0x54, 0xcd, 0xa6, 0x23, 0x24, 0x57, 0x59, 0xad, 0x6d, 0x43, 0xe6, 0x20, 0xa6, 0x06, + 0x90, 0x8b, 0xef, 0xc6, 0x33, 0xd6, 0x07, 0x92, 0xbc, 0x77, 0x98, 0x44, 0x7a, 0x0e, + 0xf3, 0x8e, 0x73, 0x11, + ], + msg: &[0x27, 0xe7, 0x92, 0xb2, 0x8b, 0x2f, 0x17, 0x02], + sig: &[ + 0x14, 0xd9, 0xb4, 0x97, 0xc1, 0x9b, 0x91, 0xd4, 0x34, 0x81, 0xc5, 0x5b, 0xb6, 0xf5, + 0x05, 0x6d, 0xe2, 0x52, 0xd9, 0xec, 0xb6, 0x37, 0x57, 0x5c, 0x80, 0x7e, 0x58, 0xe9, + 0xb4, 0xc5, 0xea, 0xc8, 0xb2, 0x84, 0x08, 0x9d, 0x97, 0xe2, 0x19, 0x2d, 0xc2, 0x42, + 0x01, 0x43, 0x63, 0x20, 0x8e, 0x2c, 0x9a, 0x34, 0x35, 0xed, 0xf8, 0x92, 0x8f, 0xb1, + 0xd8, 0x93, 0x55, 0x3e, 0x9b, 0xe4, 0xc7, 0x03, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 112, + comment: "Random test failure 27", + public_key: &[ + 0x23, 0x62, 0xba, 0xc5, 0x14, 0xd5, 0xfa, 0xd3, 0x38, 0x02, 0x64, 0x2e, 0x97, 0x9a, + 0x1e, 0x82, 0xde, 0x6e, 0xb6, 0xf1, 0xbc, 0xbf, 0x6a, 0x5b, 0x30, 0x4f, 0x2b, 0xb0, + 0x2b, 0x9e, 0x57, 0xfe, + ], + msg: &[ + 0xee, 0xf3, 0xbb, 0x0f, 0x61, 0x7c, 0x17, 0xd0, 0x42, 0x0c, 0x11, 0x5c, 0x21, 0xc2, + 0x8e, 0x37, 0x62, 0xed, 0xc7, 0xb7, 0xfb, 0x04, 0x85, 0x29, 0xb8, 0x4a, 0x9c, 0x2b, + 0xc6, + ], + sig: &[ + 0x24, 0x2d, 0xdb, 0x3a, 0x5d, 0x93, 0x8d, 0x07, 0xaf, 0x69, 0x0b, 0x1b, 0x0e, 0xf0, + 0xfa, 0x75, 0x84, 0x2c, 0x5f, 0x95, 0x49, 0xbf, 0x39, 0xc8, 0x75, 0x0f, 0x75, 0x61, + 0x4c, 0x71, 0x2e, 0x7c, 0xba, 0xf2, 0xe3, 0x7c, 0xc0, 0x79, 0x9d, 0xb3, 0x8b, 0x85, + 0x8d, 0x41, 0xae, 0xc5, 0xb9, 0xdd, 0x2f, 0xca, 0x6a, 0x3c, 0x8e, 0x08, 0x2c, 0x10, + 0x40, 0x8e, 0x2c, 0xf3, 0x93, 0x2b, 0x9d, 0x08, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 113, + comment: "Random test failure 28", + public_key: &[ + 0x32, 0xad, 0x02, 0x6f, 0x69, 0x3d, 0x0d, 0x2a, 0xfe, 0x7f, 0x43, 0x88, 0xd9, 0x1c, + 0x4c, 0x96, 0x44, 0x26, 0xfc, 0xb9, 0xe3, 0x66, 0x5c, 0x3e, 0xbd, 0x86, 0x50, 0x00, + 0x9b, 0x81, 0x5c, 0x8e, + ], + msg: &[0x47, 0x5f], + sig: &[ + 0x71, 0xa4, 0xa0, 0x6a, 0x34, 0x07, 0x5f, 0x2f, 0xd4, 0x7b, 0xc3, 0xab, 0xf4, 0x71, + 0x4d, 0x46, 0xdb, 0x7e, 0x97, 0xb0, 0x8c, 0xb6, 0x18, 0x0d, 0x3f, 0x15, 0x39, 0xac, + 0x50, 0xb1, 0x8c, 0xe5, 0x1f, 0x8a, 0xf8, 0xae, 0x95, 0xed, 0x21, 0xd4, 0xfa, 0x0d, + 0xaa, 0xb7, 0x23, 0x59, 0x25, 0x63, 0x1e, 0xce, 0xa1, 0xfd, 0x9d, 0x0d, 0x8a, 0x2b, + 0xa7, 0xa7, 0x58, 0x3f, 0xd0, 0x4b, 0x90, 0x0c, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 114, + comment: "Test case for overflow in signature generation", + public_key: &[ + 0x03, 0x7b, 0x55, 0xb4, 0x27, 0xdc, 0x8d, 0xaa, 0x0f, 0x80, 0xfc, 0xeb, 0xaf, 0x08, + 0x46, 0x90, 0x23, 0x09, 0xf8, 0xa6, 0xcf, 0x18, 0xb4, 0x65, 0xc0, 0xce, 0x9b, 0x65, + 0x39, 0x62, 0x9a, 0xc8, + ], + msg: &[0x01, 0x23, 0x45, 0x67], + sig: &[ + 0xc9, 0x64, 0xe1, 0x00, 0x03, 0x3c, 0xe8, 0x88, 0x8b, 0x23, 0x46, 0x66, 0x77, 0xda, + 0x4f, 0x4a, 0xea, 0x29, 0x92, 0x3f, 0x64, 0x2a, 0xe5, 0x08, 0xf9, 0xd0, 0x88, 0x8d, + 0x78, 0x81, 0x50, 0x63, 0x6a, 0xb9, 0xb2, 0xc3, 0x76, 0x5e, 0x91, 0xbb, 0xb0, 0x51, + 0x53, 0x80, 0x11, 0x14, 0xd9, 0xe5, 0x2d, 0xc7, 0x00, 0xdf, 0x37, 0x72, 0x12, 0x22, + 0x2b, 0xb7, 0x66, 0xbe, 0x4b, 0x8c, 0x02, 0x0d, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 115, + comment: "Test case for overflow in signature generation", + public_key: &[ + 0x9c, 0x00, 0x07, 0x69, 0x8f, 0x17, 0x79, 0x98, 0xa7, 0x66, 0x6c, 0x7c, 0xf7, 0x97, + 0x3e, 0x2b, 0x88, 0xe9, 0xc4, 0x94, 0x6e, 0x33, 0x80, 0x4a, 0x7b, 0xbe, 0x89, 0x68, + 0xd2, 0x39, 0x4b, 0x2e, + ], + msg: &[ + 0x93, 0x99, 0xa6, 0xdb, 0x94, 0x33, 0xd2, 0xa2, 0x8d, 0x2b, 0x0c, 0x11, 0xc8, 0x79, + 0x4a, 0xb7, 0xd1, 0x08, 0xc9, 0x5b, + ], + sig: &[ + 0x17, 0x60, 0x65, 0xc6, 0xd6, 0x4a, 0x13, 0x6a, 0x22, 0x27, 0x68, 0x7d, 0x77, 0xf6, + 0x1f, 0x3f, 0xca, 0x3b, 0x16, 0x12, 0x2c, 0x96, 0x62, 0x76, 0xfd, 0x9a, 0x8b, 0x14, + 0xa1, 0xa2, 0xce, 0xa4, 0xc3, 0x3b, 0x35, 0x33, 0xd1, 0x11, 0x01, 0x71, 0x70, 0x16, + 0x68, 0x4e, 0x38, 0x10, 0xef, 0xbe, 0xa6, 0x3b, 0xb2, 0x37, 0x73, 0xf7, 0xcc, 0x48, + 0x01, 0x74, 0x19, 0x9a, 0xbd, 0x73, 0x4f, 0x08, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 116, + comment: "Test case for overflow in signature generation", + public_key: &[ + 0xed, 0x3a, 0x6f, 0x97, 0x21, 0xdc, 0x97, 0x29, 0xc1, 0xf7, 0x66, 0x35, 0xbc, 0xf0, + 0x80, 0xd7, 0x03, 0x6e, 0x1c, 0x2f, 0x02, 0x28, 0x65, 0x4c, 0xcb, 0xbe, 0x1e, 0x73, + 0x8c, 0x17, 0xb9, 0x63, + ], + msg: &[ + 0x7a, 0xf7, 0x83, 0xaf, 0xbb, 0xd4, 0x4c, 0x18, 0x33, 0xab, 0x72, 0x37, 0xec, 0xaf, + 0x63, 0xb9, 0x4f, 0xfd, 0xd0, 0x03, + ], + sig: &[ + 0x7c, 0xa6, 0x93, 0x31, 0xee, 0xc8, 0x61, 0x0d, 0x38, 0xf0, 0x0e, 0x2c, 0xdb, 0xd4, + 0x69, 0x66, 0xcb, 0x35, 0x9d, 0xcd, 0xe9, 0x8a, 0x25, 0x7a, 0xc6, 0xf3, 0x62, 0xcc, + 0x00, 0xc8, 0xf4, 0xfe, 0x85, 0xc0, 0x22, 0x85, 0xfe, 0x4d, 0x66, 0xe3, 0x1a, 0x44, + 0xca, 0xdb, 0x2b, 0xf4, 0x74, 0xe1, 0xa7, 0x95, 0x76, 0x09, 0xeb, 0x4f, 0xe9, 0x5a, + 0x71, 0x47, 0x3f, 0xe6, 0x69, 0x9a, 0xa7, 0x0d, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 117, + comment: "Test case for overflow in signature generation", + public_key: &[ + 0x4a, 0xbf, 0xb5, 0x35, 0x31, 0x37, 0x05, 0xa6, 0x57, 0x00, 0x18, 0x44, 0x0c, 0xde, + 0xc1, 0xa3, 0xae, 0x33, 0xe5, 0x1f, 0x35, 0x21, 0x12, 0xfa, 0x6a, 0xcb, 0xd0, 0xc6, + 0xbc, 0x3e, 0xa8, 0x59, + ], + msg: &[ + 0x32, 0x1b, 0x5f, 0x66, 0x3c, 0x19, 0xe3, 0x0e, 0xe7, 0xbb, 0xb8, 0x5e, 0x48, 0xec, + 0xf4, 0x4d, 0xb9, 0xd3, 0xf5, 0x12, + ], + sig: &[ + 0xf2, 0x96, 0x71, 0x5e, 0x85, 0x5d, 0x8a, 0xec, 0xcc, 0xba, 0x78, 0x2b, 0x67, 0x01, + 0x63, 0xde, 0xdc, 0x44, 0x58, 0xfe, 0x4e, 0xb5, 0x09, 0xa8, 0x56, 0xbc, 0xac, 0x45, + 0x09, 0x20, 0xfd, 0x2e, 0x95, 0xa3, 0xa3, 0xeb, 0x21, 0x2d, 0x2d, 0x9c, 0xca, 0xf9, + 0x48, 0xc3, 0x9a, 0xe4, 0x6a, 0x25, 0x48, 0xaf, 0x12, 0x5f, 0x8e, 0x2a, 0xd9, 0xb7, + 0x7b, 0xd1, 0x8f, 0x92, 0xd5, 0x9f, 0x92, 0x00, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 118, + comment: "Test case for overflow in signature generation", + public_key: &[ + 0x4f, 0x21, 0x62, 0xe6, 0xbf, 0x03, 0xa7, 0x12, 0xdb, 0x0e, 0xfa, 0x41, 0x8b, 0x7e, + 0x70, 0x06, 0xe2, 0x38, 0x71, 0xd9, 0xd7, 0xec, 0x55, 0x5a, 0x31, 0x38, 0x85, 0xc4, + 0xaf, 0xd9, 0x63, 0x85, + ], + msg: &[ + 0xc4, 0x88, 0x90, 0xe9, 0x2a, 0xee, 0xb3, 0xaf, 0x04, 0x85, 0x8a, 0x8d, 0xc1, 0xd3, + 0x4f, 0x16, 0xa4, 0x34, 0x7b, 0x91, + ], + sig: &[ + 0x36, 0x7d, 0x07, 0x25, 0x3a, 0x9d, 0x5a, 0x77, 0xd0, 0x54, 0xb9, 0xc1, 0xa8, 0x2d, + 0x3c, 0x0a, 0x44, 0x8a, 0x51, 0x90, 0x53, 0x43, 0x32, 0x0b, 0x35, 0x59, 0x32, 0x5e, + 0xf4, 0x18, 0x39, 0x60, 0x8a, 0xa4, 0x55, 0x64, 0x97, 0x8d, 0xa1, 0xb2, 0x96, 0x8c, + 0x55, 0x6c, 0xfb, 0x23, 0xb0, 0xc9, 0x8a, 0x9b, 0xe8, 0x3e, 0x59, 0x4d, 0x5e, 0x76, + 0x9d, 0x69, 0xd1, 0x15, 0x6e, 0x1b, 0x15, 0x06, + ], + result: Verdict::Valid, + flags: &["Ktv"], + }, + Vector { + tc_id: 119, + comment: "regression test for arithmetic error", + public_key: &[ + 0x4a, 0xbf, 0xb5, 0x35, 0x31, 0x37, 0x05, 0xa6, 0x57, 0x00, 0x18, 0x44, 0x0c, 0xde, + 0xc1, 0xa3, 0xae, 0x33, 0xe5, 0x1f, 0x35, 0x21, 0x12, 0xfa, 0x6a, 0xcb, 0xd0, 0xc6, + 0xbc, 0x3e, 0xa8, 0x59, + ], + msg: &[ + 0x32, 0x1b, 0x5f, 0x66, 0x3c, 0x19, 0xe3, 0x0e, 0xe7, 0xbb, 0xb8, 0x5e, 0x48, 0xec, + 0xf4, 0x4d, 0xb9, 0xd3, 0xf5, 0x12, + ], + sig: &[ + 0xf2, 0x96, 0x71, 0x5e, 0x85, 0x5d, 0x8a, 0xec, 0xcc, 0xba, 0x78, 0x2b, 0x67, 0x01, + 0x63, 0xde, 0xdc, 0x44, 0x58, 0xfe, 0x4e, 0xb5, 0x09, 0xa8, 0x56, 0xbc, 0xac, 0x45, + 0x09, 0x20, 0xfd, 0x2e, 0x95, 0xa3, 0xa3, 0xeb, 0x21, 0x2d, 0x2d, 0x9c, 0xca, 0xf9, + 0x48, 0xc3, 0x9a, 0xe4, 0x6a, 0x25, 0x48, 0xaf, 0x12, 0x5f, 0x8e, 0x2a, 0xd9, 0xb7, + 0x7b, 0xd1, 0x8f, 0x92, 0xd5, 0x9f, 0x92, 0x00, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 120, + comment: "regression test for arithmetic error", + public_key: &[ + 0x4f, 0x21, 0x62, 0xe6, 0xbf, 0x03, 0xa7, 0x12, 0xdb, 0x0e, 0xfa, 0x41, 0x8b, 0x7e, + 0x70, 0x06, 0xe2, 0x38, 0x71, 0xd9, 0xd7, 0xec, 0x55, 0x5a, 0x31, 0x38, 0x85, 0xc4, + 0xaf, 0xd9, 0x63, 0x85, + ], + msg: &[ + 0xc4, 0x88, 0x90, 0xe9, 0x2a, 0xee, 0xb3, 0xaf, 0x04, 0x85, 0x8a, 0x8d, 0xc1, 0xd3, + 0x4f, 0x16, 0xa4, 0x34, 0x7b, 0x91, + ], + sig: &[ + 0x36, 0x7d, 0x07, 0x25, 0x3a, 0x9d, 0x5a, 0x77, 0xd0, 0x54, 0xb9, 0xc1, 0xa8, 0x2d, + 0x3c, 0x0a, 0x44, 0x8a, 0x51, 0x90, 0x53, 0x43, 0x32, 0x0b, 0x35, 0x59, 0x32, 0x5e, + 0xf4, 0x18, 0x39, 0x60, 0x8a, 0xa4, 0x55, 0x64, 0x97, 0x8d, 0xa1, 0xb2, 0x96, 0x8c, + 0x55, 0x6c, 0xfb, 0x23, 0xb0, 0xc9, 0x8a, 0x9b, 0xe8, 0x3e, 0x59, 0x4d, 0x5e, 0x76, + 0x9d, 0x69, 0xd1, 0x15, 0x6e, 0x1b, 0x15, 0x06, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 121, + comment: "regression test for arithmetic error", + public_key: &[ + 0x07, 0x17, 0xd7, 0x5c, 0xe2, 0x7e, 0xa1, 0x81, 0xed, 0x5a, 0x30, 0xe6, 0x45, 0x6c, + 0x64, 0x9b, 0x5c, 0xf4, 0x53, 0xa6, 0xb4, 0xc1, 0x2c, 0xd3, 0xf9, 0xfd, 0x16, 0xb3, + 0x1e, 0x0c, 0x25, 0xcd, + ], + msg: &[ + 0x26, 0xd5, 0xf0, 0x63, 0x1f, 0x49, 0x10, 0x6d, 0xb5, 0x8c, 0x4c, 0xfc, 0x90, 0x36, + 0x91, 0x13, 0x48, 0x11, 0xb3, 0x3c, + ], + sig: &[ + 0x95, 0x88, 0xe0, 0x2b, 0xc8, 0x15, 0x64, 0x9d, 0x35, 0x9c, 0xe7, 0x10, 0xcd, 0xc6, + 0x98, 0x14, 0x55, 0x6d, 0xd8, 0xc8, 0xba, 0xb1, 0xc4, 0x68, 0xf4, 0x0a, 0x49, 0xeb, + 0xef, 0xb7, 0xf0, 0xde, 0x7e, 0xd4, 0x97, 0x25, 0xed, 0xfd, 0x1b, 0x70, 0x8f, 0xa1, + 0xba, 0xd2, 0x77, 0xc3, 0x5d, 0x6c, 0x1b, 0x9c, 0x5e, 0xc2, 0x59, 0x90, 0x99, 0x76, + 0x45, 0x78, 0x0f, 0x92, 0x03, 0xd7, 0xdd, 0x08, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 122, + comment: "regression test for arithmetic error", + public_key: &[ + 0xdb, 0x5b, 0x9e, 0xab, 0x7e, 0x84, 0xe5, 0xa1, 0x35, 0x05, 0x86, 0x5f, 0xa7, 0x11, + 0xc9, 0xc8, 0x96, 0xc8, 0x98, 0x60, 0x9f, 0xc1, 0x1f, 0xc9, 0xbc, 0x1e, 0x55, 0x02, + 0x8f, 0x94, 0x96, 0xdf, + ], + msg: &[ + 0x2a, 0x71, 0xf0, 0x64, 0xaf, 0x98, 0x2a, 0x3a, 0x11, 0x03, 0xa7, 0x5c, 0xef, 0x89, + 0x87, 0x32, 0xd7, 0x88, 0x19, 0x81, + ], + sig: &[ + 0x22, 0x17, 0xa0, 0xbe, 0x57, 0xdd, 0x0d, 0x6c, 0x00, 0x90, 0x64, 0x14, 0x96, 0xbc, + 0xb6, 0x5e, 0x37, 0x21, 0x3f, 0x02, 0xa0, 0xdf, 0x50, 0xaf, 0xf0, 0x36, 0x8e, 0xe2, + 0x80, 0x8e, 0x13, 0x76, 0x50, 0x4f, 0x37, 0xb3, 0x74, 0x94, 0x13, 0x2d, 0xfc, 0x4d, + 0x48, 0x87, 0xf5, 0x8b, 0x9e, 0x86, 0xef, 0xf9, 0x24, 0x04, 0x0d, 0xb3, 0x92, 0x5e, + 0xe4, 0xf8, 0xe1, 0x42, 0x8c, 0x4c, 0x50, 0x0e, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 123, + comment: "regression test for arithmetic error", + public_key: &[ + 0x7b, 0xac, 0x18, 0xf6, 0xd2, 0x62, 0x5d, 0x39, 0x15, 0xf2, 0x33, 0x43, 0x4c, 0xda, + 0x38, 0xa5, 0x77, 0x24, 0x7a, 0x73, 0x32, 0xa5, 0x17, 0x0b, 0x37, 0x14, 0x2a, 0x34, + 0x64, 0x41, 0x45, 0xe0, + ], + msg: &[ + 0xbf, 0x26, 0x79, 0x6c, 0xef, 0x4d, 0xda, 0xfc, 0xf5, 0x03, 0x3c, 0x8d, 0x10, 0x50, + 0x57, 0xdb, 0x02, 0x10, 0xb6, 0xad, + ], + sig: &[ + 0x1f, 0xda, 0x6d, 0xd4, 0x51, 0x9f, 0xdb, 0xef, 0xb5, 0x15, 0xbf, 0xa3, 0x9e, 0x8e, + 0x59, 0x11, 0xf4, 0xa0, 0xa8, 0xaa, 0x65, 0xf4, 0x0e, 0xf0, 0xc5, 0x42, 0xb8, 0xb3, + 0x4b, 0x87, 0xf9, 0xc2, 0x49, 0xdc, 0x57, 0xf3, 0x20, 0x71, 0x8f, 0xf4, 0x57, 0xed, + 0x59, 0x15, 0xc4, 0xd0, 0xfc, 0x35, 0x2a, 0xff, 0xc1, 0x28, 0x77, 0x24, 0xd3, 0xf3, + 0xa9, 0xde, 0x1f, 0xf7, 0x77, 0xa0, 0x2e, 0x01, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 124, + comment: "regression test for arithmetic error", + public_key: &[ + 0x7b, 0xac, 0x18, 0xf6, 0xd2, 0x62, 0x5d, 0x39, 0x15, 0xf2, 0x33, 0x43, 0x4c, 0xda, + 0x38, 0xa5, 0x77, 0x24, 0x7a, 0x73, 0x32, 0xa5, 0x17, 0x0b, 0x37, 0x14, 0x2a, 0x34, + 0x64, 0x41, 0x45, 0xe0, + ], + msg: &[ + 0xbf, 0x26, 0x79, 0x6c, 0xef, 0x4d, 0xda, 0xfc, 0xf5, 0x03, 0x3c, 0x8d, 0x10, 0x50, + 0x57, 0xdb, 0x02, 0x10, 0xb6, 0xad, + ], + sig: &[ + 0x1f, 0xda, 0x6d, 0xd4, 0x51, 0x9f, 0xdb, 0xef, 0xb5, 0x15, 0xbf, 0xa3, 0x9e, 0x8e, + 0x59, 0x11, 0xf4, 0xa0, 0xa8, 0xaa, 0x65, 0xf4, 0x0e, 0xf0, 0xc5, 0x42, 0xb8, 0xb3, + 0x4b, 0x87, 0xf9, 0xc2, 0x49, 0xdc, 0x57, 0xf3, 0x20, 0x71, 0x8f, 0xf4, 0x57, 0xed, + 0x59, 0x15, 0xc4, 0xd0, 0xfc, 0x35, 0x2a, 0xff, 0xc1, 0x28, 0x77, 0x24, 0xd3, 0xf3, + 0xa9, 0xde, 0x1f, 0xf7, 0x77, 0xa0, 0x2e, 0x01, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 125, + comment: "regression test for arithmetic error", + public_key: &[ + 0x38, 0xea, 0xd3, 0x04, 0x62, 0x4a, 0xbe, 0xbf, 0x3e, 0x2b, 0x31, 0xe2, 0x0e, 0x56, + 0x29, 0x53, 0x1e, 0x3f, 0xc6, 0x59, 0x00, 0x88, 0x87, 0xc9, 0x10, 0x6f, 0x5e, 0x55, + 0xad, 0xbb, 0xc6, 0x2a, + ], + msg: &[ + 0xae, 0x03, 0xda, 0x69, 0x97, 0xe4, 0x0c, 0xea, 0x67, 0x93, 0x50, 0x20, 0x15, 0x2d, + 0x3a, 0x9a, 0x36, 0x5c, 0xc0, 0x55, + ], + sig: &[ + 0x06, 0x8e, 0xaf, 0xdc, 0x2f, 0x36, 0xb9, 0x7f, 0x9b, 0xae, 0x7f, 0xbd, 0xa8, 0x8b, + 0x53, 0x0d, 0x16, 0xb0, 0xe3, 0x50, 0x54, 0xd3, 0xa3, 0x51, 0xe3, 0xa4, 0xc9, 0x14, + 0xb2, 0x28, 0x54, 0xc7, 0x11, 0x50, 0x5e, 0x49, 0x68, 0x2e, 0x1a, 0x44, 0x7e, 0x10, + 0xa6, 0x9e, 0x3b, 0x04, 0xd0, 0x75, 0x9c, 0x85, 0x98, 0x97, 0xb6, 0x4f, 0x71, 0x13, + 0x7a, 0xcf, 0x35, 0x5b, 0x63, 0xfa, 0xf1, 0x00, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 126, + comment: "regression test for arithmetic error", + public_key: &[ + 0xe9, 0xbc, 0x95, 0x04, 0x9a, 0xf7, 0xe4, 0x81, 0x7b, 0x17, 0xc4, 0x02, 0x26, 0x9b, + 0xa5, 0xe7, 0x67, 0xb7, 0x34, 0x87, 0x57, 0xac, 0x80, 0x02, 0xfe, 0xc9, 0xe0, 0x83, + 0x90, 0xc0, 0xa9, 0xcf, + ], + msg: &[ + 0x48, 0x9d, 0x47, 0x3f, 0x7f, 0xb8, 0x3c, 0x7f, 0x68, 0x23, 0xba, 0xf6, 0x54, 0x82, + 0x51, 0x7b, 0xcc, 0xd8, 0xf4, 0xea, + ], + sig: &[ + 0x43, 0x67, 0x0a, 0xbc, 0x9f, 0x09, 0xa8, 0xa4, 0x15, 0xe7, 0x6f, 0x4a, 0x21, 0xc6, + 0xa4, 0x61, 0x56, 0xf0, 0x66, 0xb5, 0xa3, 0x7b, 0x3c, 0x1e, 0x86, 0x7c, 0xf6, 0x72, + 0x48, 0xc7, 0xb9, 0x27, 0xe8, 0xd1, 0x3a, 0x76, 0x3e, 0x37, 0xab, 0xf9, 0x36, 0xf5, + 0xf2, 0x7f, 0x7a, 0x8a, 0xa2, 0x90, 0x53, 0x9d, 0x21, 0xf7, 0x40, 0xef, 0xd2, 0x6b, + 0x65, 0xfd, 0x5a, 0xd2, 0x70, 0x85, 0xf4, 0x00, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 127, + comment: "regression test for arithmetic error", + public_key: &[ + 0xee, 0x81, 0x55, 0xca, 0x4e, 0x8f, 0xe7, 0xbc, 0x5b, 0xca, 0x59, 0x92, 0x04, 0x4e, + 0xab, 0x7f, 0x8c, 0x3c, 0x6a, 0x13, 0xdb, 0x11, 0x76, 0xf4, 0x2f, 0x46, 0xc2, 0x9d, + 0xa5, 0xb0, 0x64, 0xf4, + ], + msg: &[ + 0x1b, 0x70, 0x4d, 0x66, 0x92, 0xd6, 0x0a, 0x07, 0xad, 0x1e, 0x1d, 0x04, 0x7b, 0x65, + 0xe1, 0x05, 0xa8, 0x0d, 0x34, 0x59, + ], + sig: &[ + 0x56, 0x38, 0x8f, 0x22, 0x28, 0x89, 0x3b, 0x14, 0xce, 0x4f, 0x2a, 0x5e, 0x0c, 0xc6, + 0x26, 0x59, 0x10, 0x61, 0xde, 0x3a, 0x57, 0xc5, 0x0a, 0x5e, 0xca, 0xb7, 0xb9, 0xd5, + 0xbb, 0x2c, 0xae, 0xea, 0x19, 0x15, 0x60, 0xa1, 0xcf, 0x23, 0x44, 0xc7, 0x5f, 0xdb, + 0x4a, 0x08, 0x54, 0x44, 0xaa, 0x68, 0xd7, 0x27, 0xb3, 0x9f, 0x49, 0x81, 0x69, 0xea, + 0xa8, 0x2c, 0xf6, 0x4a, 0x31, 0xf5, 0x98, 0x03, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 128, + comment: "regression test for arithmetic error", + public_key: &[ + 0xdb, 0x50, 0x7b, 0xfc, 0xc9, 0x57, 0x63, 0x93, 0xf7, 0x15, 0x7b, 0xb3, 0x60, 0x53, + 0x2b, 0x05, 0xc5, 0xfc, 0xf2, 0xe7, 0x64, 0xb6, 0x90, 0xcc, 0x66, 0x98, 0xa4, 0xa3, + 0x0d, 0x34, 0x90, 0x95, + ], + msg: &[ + 0xdc, 0x87, 0x03, 0x08, 0x62, 0xc4, 0xc3, 0x2f, 0x56, 0x26, 0x1e, 0x93, 0xa3, 0x67, + 0xca, 0xf4, 0x58, 0xc6, 0xbe, 0x27, + ], + sig: &[ + 0x55, 0x3e, 0x58, 0x45, 0xfc, 0x48, 0x0a, 0x57, 0x7d, 0xa6, 0x54, 0x4e, 0x60, 0x2c, + 0xaa, 0xda, 0xa0, 0x0a, 0xe3, 0xe5, 0xaa, 0x3d, 0xce, 0x9e, 0xf3, 0x32, 0xb1, 0x54, + 0x1b, 0x6d, 0x5f, 0x21, 0xbd, 0xf1, 0xd0, 0x1e, 0x98, 0xba, 0xf8, 0x0b, 0x84, 0x35, + 0xf9, 0x93, 0x2f, 0x89, 0xb3, 0xeb, 0x70, 0xf0, 0x2d, 0xa2, 0x47, 0x87, 0xaa, 0xc8, + 0xe7, 0x72, 0x79, 0xe7, 0x97, 0xd0, 0xbd, 0x0b, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 129, + comment: "regression test for arithmetic error", + public_key: &[ + 0x99, 0x4e, 0xaf, 0x03, 0x30, 0x9d, 0x6a, 0xd9, 0xd9, 0x5a, 0x65, 0x6b, 0xc1, 0x74, + 0x4e, 0x28, 0x86, 0xf0, 0x29, 0x02, 0x3a, 0x37, 0x50, 0xb3, 0x4f, 0x35, 0x08, 0x6b, + 0x3c, 0x72, 0x27, 0xf8, + ], + msg: &[ + 0x7f, 0x41, 0xef, 0x68, 0x50, 0x83, 0x43, 0xef, 0x18, 0x81, 0x3c, 0xb2, 0xfb, 0x33, + 0x24, 0x45, 0xec, 0x64, 0x80, 0xcd, + ], + sig: &[ + 0xbc, 0x10, 0xf8, 0x80, 0x81, 0xb7, 0xbe, 0x1f, 0x25, 0x05, 0xb6, 0xe7, 0x6c, 0x5c, + 0x82, 0xe3, 0x58, 0xcf, 0x21, 0xec, 0x11, 0xb7, 0xdf, 0x1f, 0x33, 0x4f, 0xb5, 0x87, + 0xba, 0xda, 0x46, 0x5b, 0x53, 0xd9, 0xf7, 0xb4, 0xd4, 0xfe, 0xc9, 0x64, 0x43, 0x2e, + 0xe9, 0x1e, 0xad, 0x1b, 0xc3, 0x2e, 0xd3, 0xc8, 0x2f, 0x21, 0x67, 0xda, 0x1c, 0x83, + 0x4a, 0x37, 0x51, 0x5d, 0xf7, 0xfe, 0x13, 0x0e, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 130, + comment: "regression test for arithmetic error", + public_key: &[ + 0x12, 0x7d, 0x37, 0xe4, 0x06, 0xe0, 0xd8, 0x3e, 0x4b, 0x55, 0xa0, 0x9e, 0x21, 0xe8, + 0xf5, 0x0f, 0xb8, 0x8a, 0xf4, 0x7e, 0x4a, 0x43, 0xf0, 0x18, 0xcd, 0xeb, 0xff, 0xc1, + 0x94, 0x87, 0x57, 0xf0, + ], + msg: &[ + 0xe1, 0xce, 0x10, 0x79, 0x71, 0x53, 0x4b, 0xc4, 0x6a, 0x42, 0xac, 0x60, 0x9a, 0x1a, + 0x37, 0xb4, 0xca, 0x65, 0x79, 0x1d, + ], + sig: &[ + 0x00, 0xc1, 0x1e, 0x76, 0xb5, 0x86, 0x6b, 0x7c, 0x37, 0x52, 0x8b, 0x06, 0x70, 0x18, + 0x8c, 0x1a, 0x04, 0x73, 0xfb, 0x93, 0xc3, 0x3b, 0x72, 0xae, 0x60, 0x4a, 0x88, 0x65, + 0xa7, 0xd6, 0xe0, 0x94, 0xff, 0x72, 0x2e, 0x8e, 0xde, 0x3c, 0xb1, 0x83, 0x89, 0x68, + 0x5f, 0xf3, 0xc4, 0x08, 0x6c, 0x29, 0x00, 0x60, 0x47, 0x46, 0x6f, 0x81, 0xe7, 0x1a, + 0x32, 0x97, 0x11, 0xe0, 0xb9, 0x29, 0x47, 0x09, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 131, + comment: "regression test for arithmetic error", + public_key: &[ + 0xd8, 0x3b, 0xa8, 0x4e, 0xdf, 0xb4, 0xbe, 0xc4, 0x9f, 0x29, 0xbe, 0x31, 0xd8, 0x0a, + 0x64, 0xb7, 0xc0, 0xb5, 0xa5, 0x02, 0x43, 0x8c, 0xdb, 0x1d, 0x0d, 0xd1, 0xe0, 0xe3, + 0xe5, 0x57, 0x86, 0xde, + ], + msg: &[ + 0x86, 0x9a, 0x82, 0x73, 0x97, 0xc5, 0x85, 0xcf, 0x35, 0xac, 0xf8, 0x8a, 0x87, 0x28, + 0x83, 0x3a, 0xb1, 0xc8, 0xc8, 0x1e, + ], + sig: &[ + 0x0a, 0x6f, 0x0a, 0xc4, 0x7e, 0xa1, 0x36, 0xcb, 0x3f, 0xf0, 0x0f, 0x7a, 0x96, 0x63, + 0x8e, 0x49, 0x84, 0x04, 0x89, 0x99, 0xee, 0x2d, 0xa0, 0xaf, 0x6e, 0x5c, 0x86, 0xbf, + 0xfb, 0x0e, 0x70, 0xbb, 0x97, 0x40, 0x6b, 0x6a, 0xd5, 0xa4, 0xb7, 0x64, 0xf7, 0xc9, + 0x9e, 0xbb, 0x6e, 0xc0, 0xfd, 0x43, 0x4b, 0x8e, 0xfe, 0x25, 0x3b, 0x04, 0x23, 0xef, + 0x87, 0x6c, 0x03, 0x79, 0x98, 0xe8, 0xab, 0x07, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 132, + comment: "regression test for arithmetic error", + public_key: &[ + 0xd3, 0xc9, 0xaa, 0x2f, 0x3d, 0x6e, 0xf2, 0x17, 0xa1, 0x66, 0xe8, 0xae, 0x40, 0x3e, + 0xd4, 0x36, 0xc3, 0x7f, 0xac, 0xbb, 0xe3, 0xbe, 0xce, 0xb7, 0x8d, 0xf6, 0xeb, 0x43, + 0x9f, 0x8f, 0xa0, 0x4a, + ], + msg: &[ + 0x61, 0x9d, 0x8c, 0x4f, 0x2c, 0x93, 0x10, 0x4b, 0xe0, 0x1c, 0xd5, 0x74, 0xa3, 0x85, + 0xce, 0xca, 0x08, 0xc3, 0x3a, 0x9e, + ], + sig: &[ + 0xb7, 0xcb, 0xb9, 0x42, 0xa6, 0x66, 0x1e, 0x23, 0x12, 0xf7, 0x95, 0x48, 0x22, 0x4f, + 0x3e, 0x44, 0xf5, 0x84, 0x1c, 0x6e, 0x88, 0x0c, 0x68, 0x34, 0x07, 0x56, 0xa0, 0x0c, + 0xe9, 0x4a, 0x91, 0x4e, 0x84, 0x04, 0x85, 0x82, 0x65, 0x98, 0x5e, 0x6b, 0xb9, 0x7e, + 0xf0, 0x1d, 0x2d, 0x7e, 0x5e, 0x41, 0x34, 0x03, 0x09, 0x60, 0x6b, 0xfc, 0x43, 0xc8, + 0xc6, 0xa8, 0xf9, 0x25, 0x12, 0x6b, 0x3d, 0x09, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 133, + comment: "regression test for arithmetic error", + public_key: &[ + 0xd5, 0x32, 0x80, 0x36, 0x7c, 0x1c, 0x0b, 0x95, 0xac, 0x41, 0x12, 0x21, 0x8b, 0x92, + 0xc6, 0xa7, 0x1c, 0x51, 0xfb, 0x63, 0x12, 0xce, 0x66, 0x8d, 0xe1, 0x96, 0xc7, 0xd5, + 0x2a, 0x13, 0x61, 0x55, + ], + msg: &[ + 0x52, 0x57, 0xa0, 0xba, 0xe8, 0x32, 0x6d, 0x25, 0x9a, 0x6c, 0xe9, 0x74, 0x20, 0xc6, + 0x5e, 0x6c, 0x27, 0x94, 0xaf, 0xe2, + ], + sig: &[ + 0x27, 0xa4, 0xf2, 0x40, 0x09, 0xe5, 0x79, 0x17, 0x3f, 0xf3, 0x06, 0x4a, 0x6e, 0xff, + 0x2a, 0x4d, 0x20, 0x22, 0x4f, 0x8f, 0x85, 0xfd, 0xec, 0x98, 0x2a, 0x9c, 0xf2, 0xe6, + 0xa3, 0xb5, 0x15, 0x37, 0x34, 0x8a, 0x1d, 0x78, 0x51, 0xa3, 0xa9, 0x32, 0x12, 0x8a, + 0x92, 0x3a, 0x39, 0x3e, 0xa8, 0x4e, 0x6b, 0x35, 0xeb, 0x34, 0x73, 0xc3, 0x2d, 0xce, + 0xb9, 0xd7, 0xe9, 0xca, 0xb0, 0x3a, 0x0f, 0x0d, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 134, + comment: "regression test for arithmetic error", + public_key: &[ + 0x94, 0xac, 0x23, 0x36, 0xba, 0x97, 0xa4, 0x76, 0xfb, 0x4c, 0x9f, 0x2b, 0x55, 0x63, + 0xe4, 0x16, 0x7c, 0xa2, 0x92, 0xc6, 0xe9, 0x9e, 0x42, 0x23, 0x50, 0xa9, 0x11, 0xae, + 0x31, 0x72, 0xc3, 0x15, + ], + msg: &[ + 0x5a, 0xcb, 0x6a, 0xfc, 0x9b, 0x36, 0x8f, 0x7a, 0xca, 0xc0, 0xe7, 0x1f, 0x6a, 0x48, + 0x31, 0xc7, 0x2d, 0x62, 0x84, 0x05, + ], + sig: &[ + 0x98, 0x5b, 0x60, 0x5f, 0xe3, 0xf4, 0x49, 0xf6, 0x80, 0x81, 0x19, 0x7a, 0x68, 0xc7, + 0x14, 0xda, 0x0b, 0xfb, 0xf6, 0xac, 0x2a, 0xb9, 0xab, 0xb0, 0x50, 0x8b, 0x63, 0x84, + 0xea, 0x49, 0x99, 0xcb, 0x8d, 0x79, 0xaf, 0x98, 0xe8, 0x6f, 0x58, 0x94, 0x09, 0xe8, + 0xd2, 0x60, 0x9a, 0x8f, 0x8b, 0xd7, 0xe8, 0x0a, 0xaa, 0x8d, 0x92, 0xa8, 0x4e, 0x77, + 0x37, 0xfb, 0xe8, 0xdc, 0xef, 0x41, 0x92, 0x0a, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 135, + comment: "regression test for arithmetic error", + public_key: &[ + 0xe1, 0xe7, 0x31, 0x6d, 0x23, 0x1f, 0x7f, 0x27, 0x5b, 0xdf, 0x40, 0x33, 0x60, 0x30, + 0x4d, 0xa1, 0x50, 0x9f, 0xdf, 0x1a, 0xf1, 0xfd, 0x25, 0xca, 0x21, 0x4e, 0xaa, 0xc0, + 0xa2, 0x89, 0x39, 0x8f, + ], + msg: &[ + 0x3c, 0x87, 0xb3, 0x45, 0x32, 0x77, 0xb3, 0x53, 0x94, 0x15, 0x91, 0xfc, 0x7e, 0xaa, + 0x7d, 0xd3, 0x76, 0x04, 0xb4, 0x2a, + ], + sig: &[ + 0x1c, 0x8f, 0xbd, 0xa3, 0xd3, 0x9e, 0x2b, 0x44, 0x1f, 0x06, 0xda, 0x60, 0x71, 0xc1, + 0x31, 0x15, 0xcb, 0x41, 0x15, 0xc7, 0xc3, 0x34, 0x17, 0x04, 0xcf, 0x65, 0x13, 0x32, + 0x4d, 0x4c, 0xf1, 0xef, 0x4a, 0x1d, 0xd7, 0x67, 0x8a, 0x04, 0x8b, 0x0d, 0xde, 0x84, + 0xe4, 0x89, 0x94, 0xd0, 0x80, 0xbe, 0xfc, 0xd7, 0x08, 0x54, 0x07, 0x9d, 0x44, 0xb6, + 0xa0, 0xb0, 0xf9, 0xfa, 0x00, 0x2d, 0x13, 0x0c, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 136, + comment: "regression test for arithmetic error", + public_key: &[ + 0xff, 0xfb, 0xee, 0xa7, 0x12, 0x15, 0xef, 0xaf, 0x98, 0x88, 0xfe, 0xc2, 0xcc, 0x68, + 0xed, 0xb3, 0x70, 0x3f, 0xf1, 0x1a, 0x66, 0xfd, 0x62, 0x9b, 0x53, 0xcb, 0xda, 0x5e, + 0xab, 0xc1, 0x87, 0x50, + ], + msg: &[ + 0x0a, 0x68, 0xe2, 0x7e, 0xf6, 0x84, 0x7b, 0xfd, 0x9e, 0x39, 0x8b, 0x32, 0x8a, 0x0d, + 0xed, 0x36, 0x79, 0xd4, 0x64, 0x9d, + ], + sig: &[ + 0x59, 0x09, 0x72, 0x33, 0xeb, 0x14, 0x1e, 0xd9, 0x48, 0xb4, 0xf3, 0xc2, 0x8a, 0x94, + 0x96, 0xb9, 0xa7, 0xec, 0xa7, 0x74, 0x54, 0xec, 0xfe, 0x7e, 0x46, 0x73, 0x7d, 0x14, + 0x49, 0xa0, 0xb7, 0x6b, 0x15, 0xaa, 0xcf, 0x77, 0xcf, 0x48, 0xaf, 0x27, 0xa6, 0x68, + 0xaa, 0x44, 0x34, 0xcf, 0xa2, 0x6c, 0x50, 0x4d, 0x75, 0xa2, 0xbc, 0xc4, 0xfe, 0xac, + 0x46, 0x46, 0x54, 0x46, 0x23, 0x4c, 0x05, 0x08, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 137, + comment: "regression test for arithmetic error", + public_key: &[ + 0x19, 0xcc, 0xc0, 0x52, 0x75, 0x99, 0xcb, 0x03, 0x2e, 0x0b, 0x4c, 0x4d, 0x74, 0xe6, + 0x0f, 0x13, 0x90, 0x17, 0x68, 0xa9, 0x9d, 0xf0, 0x41, 0xc3, 0xbc, 0x1b, 0xf6, 0xc0, + 0xef, 0x27, 0x11, 0x69, + ], + msg: &[ + 0x4e, 0x9b, 0xef, 0x60, 0x73, 0x7c, 0x7d, 0x4d, 0xd1, 0x0b, 0xd5, 0x25, 0x67, 0xe1, + 0x47, 0x3a, 0x36, 0xd3, 0x57, 0x3d, + ], + sig: &[ + 0x51, 0x91, 0x05, 0x60, 0x85, 0x08, 0xfe, 0x2f, 0x1b, 0x6d, 0xa4, 0xcc, 0x8b, 0x23, + 0xe3, 0x97, 0x98, 0xb1, 0xd1, 0x8d, 0x25, 0x97, 0x2b, 0xee, 0xd0, 0x40, 0x4c, 0xec, + 0x72, 0x2e, 0x01, 0xba, 0x1b, 0x6a, 0x0f, 0x85, 0xe9, 0x9e, 0x09, 0x2c, 0xca, 0x80, + 0x76, 0xb1, 0x01, 0xb6, 0x0d, 0x4a, 0xc5, 0x03, 0x56, 0x84, 0x35, 0x7f, 0x4d, 0x0d, + 0xaa, 0xcd, 0xc6, 0x42, 0xda, 0x74, 0x2a, 0x06, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 138, + comment: "regression test for arithmetic error", + public_key: &[ + 0x0e, 0x72, 0x6e, 0x27, 0x04, 0x75, 0x63, 0xaa, 0x0a, 0x1a, 0x9c, 0x2e, 0x08, 0x5d, + 0x8d, 0x26, 0xaf, 0x2a, 0xcb, 0xa1, 0x29, 0xd0, 0x86, 0x9c, 0x65, 0x03, 0x1e, 0x3e, + 0x6c, 0xac, 0x32, 0x9a, + ], + msg: &[ + 0xcc, 0x82, 0xb3, 0x16, 0x3e, 0xfd, 0xa3, 0xba, 0x7e, 0x92, 0x40, 0xe7, 0x65, 0x11, + 0x2c, 0xaa, 0x69, 0x11, 0x36, 0x94, + ], + sig: &[ + 0xd8, 0xb0, 0x3e, 0xe5, 0x79, 0xe7, 0x3f, 0x16, 0x47, 0x75, 0x27, 0xfc, 0x9d, 0xc3, + 0x7a, 0x72, 0xea, 0xac, 0x07, 0x48, 0xa7, 0x33, 0x77, 0x2c, 0x48, 0x3b, 0xa0, 0x13, + 0x94, 0x4f, 0x01, 0xef, 0x64, 0xfb, 0x4e, 0xc5, 0xe3, 0xa9, 0x50, 0x21, 0xdc, 0x22, + 0xf4, 0xae, 0x28, 0x2b, 0xaf, 0xf6, 0xe9, 0xb9, 0xcc, 0x84, 0x33, 0xc6, 0xb6, 0x71, + 0x0d, 0x82, 0xe7, 0x39, 0x7d, 0x72, 0xef, 0x04, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 139, + comment: "regression test for arithmetic error", + public_key: &[ + 0xe7, 0x77, 0x17, 0xb5, 0x4a, 0x2b, 0x5e, 0x5b, 0xce, 0x5b, 0xcc, 0xb8, 0xf0, 0xc5, + 0xfd, 0xb5, 0xfd, 0x7d, 0xf7, 0x7a, 0xc2, 0x54, 0x02, 0x0f, 0xc9, 0x12, 0x0d, 0xc0, + 0xd4, 0xdf, 0x41, 0x78, + ], + msg: &[ + 0x92, 0x3a, 0x5c, 0x9e, 0x7b, 0x56, 0x35, 0xbb, 0x6c, 0x32, 0xc5, 0xa4, 0x08, 0xa4, + 0xa1, 0x5b, 0x65, 0x24, 0x50, 0xeb, + ], + sig: &[ + 0x26, 0xda, 0x61, 0xfd, 0xfd, 0x38, 0xe6, 0xd0, 0x17, 0x92, 0x81, 0x3f, 0x27, 0x84, + 0x0c, 0x8b, 0x47, 0x66, 0xb0, 0xfa, 0xae, 0xd3, 0x9d, 0x0e, 0xe8, 0x98, 0xcb, 0x45, + 0x0d, 0x94, 0xa5, 0xd5, 0xf5, 0x7e, 0x58, 0xb6, 0xa0, 0x03, 0xd7, 0xf9, 0xb5, 0x6b, + 0x20, 0x56, 0x19, 0x54, 0xc6, 0xed, 0xcf, 0x66, 0x49, 0x2d, 0x11, 0x6b, 0x8b, 0x5e, + 0x91, 0xf2, 0x05, 0xa3, 0xa6, 0x44, 0x9d, 0x0b, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 140, + comment: "regression test for arithmetic error", + public_key: &[ + 0x62, 0x20, 0x97, 0x2d, 0x3f, 0x7d, 0x15, 0x0b, 0x36, 0x79, 0x0d, 0x7d, 0x52, 0x23, + 0x84, 0x87, 0x6d, 0x64, 0xd6, 0x40, 0xcd, 0x99, 0x13, 0x18, 0x68, 0x15, 0xe1, 0x62, + 0x95, 0x82, 0xed, 0x36, + ], + msg: &[ + 0x6f, 0x2f, 0x02, 0x45, 0xde, 0x45, 0x87, 0x06, 0x29, 0x79, 0xd0, 0x42, 0x2d, 0x34, + 0x9f, 0x93, 0xcc, 0xdc, 0x3a, 0xf2, + ], + sig: &[ + 0x4a, 0xde, 0xaf, 0xf7, 0xa5, 0x8c, 0x50, 0x10, 0xa5, 0xa0, 0x67, 0xfe, 0xea, 0x0a, + 0xe5, 0x04, 0xd3, 0x7b, 0x0c, 0x6a, 0x76, 0xc6, 0xc1, 0x53, 0xe2, 0x22, 0xf1, 0x34, + 0x09, 0xdf, 0xf2, 0xdf, 0x0f, 0xab, 0x69, 0xbc, 0x50, 0x59, 0xb9, 0x7d, 0x92, 0x5d, + 0xc1, 0xb8, 0x9e, 0x98, 0x51, 0xd7, 0xc6, 0x27, 0xcb, 0x82, 0xd6, 0x55, 0x85, 0xf9, + 0xfd, 0x97, 0x61, 0x24, 0x55, 0x3f, 0x89, 0x02, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 141, + comment: "regression test for arithmetic error", + public_key: &[ + 0x7b, 0x64, 0xa2, 0x8c, 0x50, 0xec, 0x76, 0x78, 0xa9, 0x0e, 0x3e, 0x1a, 0x21, 0x52, + 0x2e, 0x30, 0xac, 0x9d, 0xb7, 0xb5, 0x21, 0x5a, 0xea, 0x2b, 0xfb, 0x33, 0xbe, 0xa0, + 0x37, 0xea, 0xb9, 0x87, + ], + msg: &[ + 0x6e, 0x91, 0x1e, 0xdb, 0x27, 0xa1, 0x70, 0xb9, 0x83, 0xd4, 0xde, 0xe1, 0x11, 0x05, + 0x54, 0xf8, 0x04, 0x33, 0x0f, 0x41, + ], + sig: &[ + 0x42, 0x04, 0xd6, 0x20, 0xcd, 0xe0, 0xc3, 0x00, 0x8c, 0x0b, 0x29, 0x01, 0xf5, 0xd6, + 0xb4, 0x4f, 0x88, 0xf0, 0xe3, 0xcb, 0x4f, 0x4d, 0x62, 0x25, 0x2b, 0xf6, 0xf3, 0xcb, + 0x37, 0xc1, 0xfb, 0x15, 0x0a, 0x9c, 0xcb, 0x29, 0x6a, 0xfe, 0x5e, 0x7c, 0x75, 0xf6, + 0x5b, 0x5c, 0x8e, 0xdd, 0x13, 0xdc, 0x49, 0x10, 0xff, 0xe1, 0xe1, 0x26, 0x5b, 0x37, + 0x07, 0xc5, 0x90, 0x42, 0xcf, 0x9a, 0x59, 0x02, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 142, + comment: "regression test for arithmetic error", + public_key: &[ + 0x72, 0x44, 0x52, 0x21, 0x0a, 0x9e, 0x4c, 0x99, 0x48, 0x19, 0x22, 0x9b, 0xf1, 0x2b, + 0xf8, 0x4e, 0x95, 0x76, 0x8a, 0x3a, 0x97, 0xc0, 0x8d, 0x8d, 0x8f, 0x5f, 0x93, 0x9a, + 0x4c, 0xad, 0x34, 0xc5, + ], + msg: &[ + 0xb8, 0xcf, 0x80, 0x7e, 0xea, 0x80, 0x9a, 0xaf, 0x73, 0x9a, 0xa0, 0x91, 0xf3, 0xb7, + 0xa3, 0xf2, 0xfd, 0x39, 0xfb, 0x51, + ], + sig: &[ + 0xf8, 0xa6, 0x9d, 0x3f, 0xd8, 0xc2, 0xff, 0x0a, 0x9d, 0xec, 0x41, 0xe4, 0xc6, 0xb4, + 0x36, 0x75, 0xce, 0x08, 0x36, 0x6a, 0x35, 0xe2, 0x20, 0xb1, 0x18, 0x5f, 0xfc, 0x24, + 0x6c, 0x33, 0x9e, 0x22, 0xc2, 0x0a, 0xc6, 0x61, 0xe8, 0x66, 0xf5, 0x20, 0x54, 0x01, + 0x5e, 0xfd, 0x04, 0xf4, 0x2e, 0xca, 0x2a, 0xdc, 0xee, 0x68, 0x34, 0xc4, 0xdf, 0x92, + 0x3b, 0x4a, 0x62, 0x57, 0x6e, 0x4d, 0xff, 0x0e, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 143, + comment: "regression test for arithmetic error", + public_key: &[ + 0xba, 0xd2, 0x65, 0xb2, 0x94, 0xed, 0x2f, 0x42, 0x2c, 0xb6, 0xa1, 0x41, 0x69, 0x40, + 0x86, 0x23, 0x8f, 0xbf, 0xe9, 0x87, 0x57, 0x1a, 0xa7, 0x65, 0xd8, 0xb4, 0xf3, 0xa2, + 0x41, 0x05, 0xaa, 0x01, + ], + msg: &[ + 0x01, 0xa2, 0xb5, 0xf7, 0xfe, 0xe8, 0x13, 0xb4, 0xe9, 0xbd, 0x7f, 0xc2, 0x51, 0x37, + 0x64, 0x80, 0x04, 0x79, 0x50, 0x10, + ], + sig: &[ + 0x61, 0x79, 0x2c, 0x94, 0x42, 0xbc, 0x63, 0x38, 0xac, 0x41, 0xfd, 0x42, 0xa4, 0x0b, + 0xee, 0x9b, 0x02, 0xec, 0x18, 0x36, 0x50, 0x3d, 0x60, 0xff, 0x72, 0x51, 0x28, 0xc6, + 0x3d, 0x72, 0x80, 0x88, 0x80, 0xc3, 0x6e, 0x61, 0x90, 0xb7, 0xda, 0x52, 0x5c, 0xbe, + 0xe5, 0xd1, 0x29, 0x00, 0xaa, 0x04, 0x35, 0x47, 0xdd, 0x14, 0xa2, 0x70, 0x9e, 0xf9, + 0xe4, 0x9d, 0x62, 0x8f, 0x37, 0xf6, 0xb7, 0x0c, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 144, + comment: "regression test for arithmetic error", + public_key: &[ + 0x0a, 0xae, 0xe4, 0xb7, 0x23, 0xdb, 0x9b, 0x51, 0xba, 0x7d, 0x22, 0xeb, 0x23, 0xeb, + 0x8a, 0x76, 0xa5, 0xac, 0x02, 0xf4, 0xfc, 0x9d, 0xd0, 0x6f, 0x77, 0xbe, 0xa4, 0x2e, + 0x1d, 0x37, 0xec, 0x5a, + ], + msg: &[ + 0x0f, 0xbf, 0x5d, 0x47, 0xcb, 0x5d, 0x49, 0x8f, 0xea, 0xce, 0x8f, 0x98, 0xf1, 0x89, + 0x62, 0x08, 0xda, 0x38, 0xa8, 0x85, + ], + sig: &[ + 0xfa, 0x3c, 0xd4, 0x1e, 0x3a, 0x8c, 0x00, 0xb1, 0x9e, 0xec, 0xd4, 0x04, 0xa6, 0x3c, + 0x3c, 0xb7, 0x87, 0xcd, 0x30, 0xde, 0x0d, 0xfc, 0x93, 0x69, 0x66, 0xcf, 0xf2, 0x11, + 0x7f, 0x5a, 0xff, 0x18, 0xdb, 0x6b, 0xef, 0x80, 0xfc, 0xfd, 0x88, 0x56, 0xf3, 0xfb, + 0x2e, 0x9c, 0x3d, 0xc4, 0x75, 0x93, 0xe9, 0x47, 0x11, 0x03, 0x03, 0x2a, 0xf9, 0x18, + 0xfe, 0xee, 0x63, 0x8a, 0x33, 0xd4, 0x05, 0x05, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 145, + comment: "regression test for arithmetic error", + public_key: &[ + 0x81, 0x23, 0x44, 0xaf, 0x15, 0xa9, 0x1b, 0xa8, 0x3c, 0x2c, 0x91, 0xe9, 0x6f, 0x17, + 0x27, 0xac, 0x0f, 0x3c, 0x4c, 0x41, 0x38, 0x5b, 0x9f, 0xa8, 0x4e, 0xfa, 0x39, 0x9a, + 0xda, 0x51, 0x68, 0xbe, + ], + msg: &[ + 0x36, 0xe6, 0x7c, 0x19, 0x39, 0x75, 0x0b, 0xff, 0xb3, 0xe4, 0xba, 0x6c, 0xb8, 0x55, + 0x62, 0x61, 0x22, 0x75, 0xe8, 0x62, + ], + sig: &[ + 0x97, 0xfb, 0xbc, 0xd7, 0xa1, 0xd0, 0xeb, 0x42, 0xd2, 0xf8, 0xc4, 0x24, 0x48, 0xef, + 0x35, 0xa2, 0xc2, 0x47, 0x27, 0x40, 0x55, 0x6b, 0x64, 0x55, 0x47, 0x86, 0x53, 0x30, + 0xd6, 0xc5, 0x70, 0x68, 0xaf, 0x37, 0x7f, 0xce, 0xd0, 0x8a, 0xaf, 0x81, 0x0c, 0x08, + 0xcd, 0x3c, 0x43, 0xd2, 0x96, 0xf1, 0x97, 0x57, 0x10, 0x31, 0x2e, 0x93, 0x34, 0xc9, + 0x8b, 0x48, 0x5f, 0x83, 0x1e, 0xfa, 0x41, 0x03, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 146, + comment: "regression test for arithmetic error", + public_key: &[ + 0x0e, 0xe5, 0xcb, 0x55, 0x97, 0xfb, 0xdf, 0x8d, 0xcc, 0xc4, 0x8b, 0x01, 0x48, 0x5e, + 0x39, 0xb3, 0x3a, 0xa1, 0x33, 0xb5, 0x2d, 0x30, 0xd2, 0x37, 0x40, 0x27, 0x72, 0x67, + 0xcf, 0xec, 0x3e, 0x3e, + ], + msg: &[ + 0x13, 0x94, 0x5c, 0x89, 0x4c, 0x1d, 0x3f, 0xe8, 0x56, 0x2e, 0x8b, 0x20, 0xe5, 0xf0, + 0xef, 0xaa, 0x26, 0xad, 0xe8, 0xe3, + ], + sig: &[ + 0xd7, 0xdb, 0xaa, 0x33, 0x7f, 0xfd, 0x2a, 0x5f, 0xd8, 0xd5, 0xfd, 0x8a, 0xd5, 0xae, + 0xcc, 0xc0, 0xc0, 0xf8, 0x37, 0x95, 0xc2, 0xc5, 0x9f, 0xe6, 0x2a, 0x40, 0xb8, 0x79, + 0x03, 0xb1, 0xae, 0x62, 0xed, 0x74, 0x8a, 0x8d, 0xf5, 0xaf, 0x4d, 0x32, 0xf9, 0xf8, + 0x22, 0xa6, 0x5d, 0x0e, 0x49, 0x8b, 0x6f, 0x40, 0xea, 0xf3, 0x69, 0xa9, 0x34, 0x2a, + 0x11, 0x64, 0xee, 0x7d, 0x08, 0xb5, 0x81, 0x03, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 147, + comment: "regression test for arithmetic error", + public_key: &[ + 0x9f, 0xba, 0x1d, 0xe9, 0x2b, 0x60, 0xb5, 0xb4, 0x70, 0x30, 0x89, 0x76, 0x3d, 0x0d, + 0x6f, 0x91, 0x25, 0xe4, 0xdd, 0x7e, 0xfa, 0xe4, 0x1f, 0x08, 0xa2, 0x28, 0x82, 0xae, + 0xf9, 0x68, 0x92, 0xc4, + ], + msg: &[ + 0x4d, 0xe1, 0x42, 0xaf, 0x4b, 0x84, 0x02, 0xf8, 0x0a, 0x47, 0xfa, 0x81, 0x2d, 0xf8, + 0x4f, 0x42, 0xe2, 0x83, 0xce, 0xe7, + ], + sig: &[ + 0x09, 0xa2, 0xed, 0x30, 0x3a, 0x2f, 0xa7, 0x02, 0x7a, 0x1d, 0xd7, 0xc3, 0xb0, 0xd2, + 0x51, 0x21, 0xee, 0xed, 0x2b, 0x64, 0x4a, 0x2f, 0xbc, 0x17, 0xaa, 0x0c, 0x8a, 0xea, + 0x45, 0x24, 0x07, 0x1e, 0xde, 0x7e, 0x7d, 0xd7, 0xa5, 0x36, 0xd5, 0x49, 0x7f, 0x81, + 0x65, 0xd2, 0x9e, 0x4e, 0x1b, 0x63, 0x20, 0x0f, 0x74, 0xbb, 0xae, 0x39, 0xfb, 0xbb, + 0xcc, 0xb2, 0x98, 0x89, 0xc6, 0x2c, 0x1f, 0x09, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 148, + comment: "regression test for arithmetic error", + public_key: &[ + 0x75, 0x82, 0xab, 0x1b, 0x52, 0xe1, 0x31, 0x6e, 0x5c, 0x13, 0x67, 0x1f, 0x43, 0xb3, + 0x9c, 0xa3, 0x6b, 0x28, 0x13, 0x3c, 0xd0, 0x83, 0x28, 0x31, 0xbc, 0xdd, 0xd0, 0xb0, + 0xf2, 0x33, 0x98, 0xcb, + ], + msg: &[ + 0x56, 0x33, 0x57, 0xf4, 0x1b, 0x8b, 0x23, 0xb1, 0xd8, 0x3f, 0x19, 0xf5, 0x66, 0x71, + 0x77, 0xa6, 0x7d, 0xa2, 0x0b, 0x18, + ], + sig: &[ + 0xe6, 0x88, 0x4a, 0x6e, 0x6b, 0x2e, 0x60, 0xa0, 0xb5, 0x86, 0x22, 0x51, 0xc0, 0x01, + 0xe7, 0xc7, 0x9d, 0x58, 0x1d, 0x77, 0x7d, 0x6f, 0xc1, 0x1d, 0x21, 0x8d, 0x0a, 0xec, + 0xd7, 0x9f, 0x26, 0xa3, 0x0e, 0x2c, 0xa2, 0x2c, 0xc7, 0xc4, 0x67, 0x4f, 0x8b, 0x72, + 0x65, 0x5b, 0xc4, 0xee, 0x5c, 0xb5, 0x49, 0x4c, 0xa0, 0x7c, 0x05, 0x17, 0x76, 0x56, + 0x14, 0x2a, 0xc5, 0x5c, 0xc9, 0xd3, 0x3e, 0x02, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 149, + comment: "regression test for arithmetic error", + public_key: &[ + 0xdd, 0x2d, 0x67, 0x8b, 0xae, 0x22, 0x2f, 0x3f, 0xb6, 0xe8, 0x27, 0x8f, 0x08, 0xcc, + 0x9e, 0x1a, 0x66, 0x33, 0x9c, 0x92, 0x6c, 0x29, 0xac, 0x0a, 0x16, 0xf9, 0x71, 0x7f, + 0x5e, 0xe1, 0x8c, 0xd8, + ], + msg: &[ + 0x93, 0x1b, 0xbf, 0x9c, 0x87, 0x7a, 0x65, 0x71, 0xcf, 0x7d, 0x46, 0x09, 0xfc, 0x3e, + 0xb8, 0x67, 0xed, 0xd4, 0x3f, 0x51, + ], + sig: &[ + 0x61, 0x24, 0xc2, 0x06, 0xd8, 0x64, 0x50, 0x7e, 0xa5, 0xd9, 0x84, 0xb3, 0x63, 0xb4, + 0xcf, 0x58, 0x33, 0x14, 0xdb, 0x68, 0x56, 0xa4, 0x5d, 0xed, 0x5e, 0x61, 0xee, 0xbf, + 0xf4, 0xd5, 0xe3, 0x37, 0xe0, 0xb4, 0xc8, 0x2b, 0x44, 0x5a, 0xe2, 0xe5, 0x2d, 0x54, + 0x9d, 0x2d, 0x96, 0x1e, 0xac, 0xe2, 0xea, 0x01, 0xf8, 0x11, 0x58, 0xe0, 0x9a, 0x96, + 0x86, 0xba, 0xa0, 0x40, 0xdb, 0x65, 0xad, 0x08, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, + Vector { + tc_id: 150, + comment: "regression test for arithmetic error", + public_key: &[ + 0xcc, 0xbe, 0x7c, 0xb2, 0xe4, 0xbc, 0x21, 0x5c, 0xee, 0x2f, 0x88, 0x5e, 0x1d, 0x22, + 0xf7, 0xe0, 0xd5, 0x82, 0xb2, 0xbb, 0xbd, 0x78, 0x2c, 0x10, 0x4e, 0x54, 0x8b, 0x15, + 0x2d, 0x26, 0xfc, 0x69, + ], + msg: &[ + 0x44, 0x53, 0x0b, 0x0b, 0x34, 0xf5, 0x98, 0x76, 0x7a, 0x7b, 0x87, 0x5b, 0x0c, 0xae, + 0xe3, 0xc7, 0xb9, 0xc5, 0x02, 0xd1, + ], + sig: &[ + 0xcf, 0xbd, 0x45, 0x0a, 0x2c, 0x83, 0xcb, 0x84, 0x36, 0xc3, 0x48, 0x82, 0x2f, 0xe3, + 0xee, 0x34, 0x7d, 0x4e, 0xe9, 0x37, 0xb7, 0xf2, 0xea, 0x11, 0xed, 0x75, 0x5c, 0xc5, + 0x28, 0x52, 0x40, 0x7c, 0x9e, 0xec, 0x2c, 0x1f, 0xa3, 0x0d, 0x2f, 0x9a, 0xef, 0x90, + 0xe8, 0x9b, 0x2c, 0xc3, 0xbc, 0xef, 0x2b, 0x1b, 0x9c, 0xa5, 0x9f, 0x71, 0x21, 0x10, + 0xd1, 0x98, 0x94, 0xa9, 0xcf, 0x6a, 0x28, 0x02, + ], + result: Verdict::Valid, + flags: &["TinkOverflow"], + }, +]; diff --git a/cryptography/test_vectors/wycheproof/ed25519_test.json b/cryptography/test_vectors/wycheproof/ed25519_test.json new file mode 100644 index 00000000000..17cfb05dae4 --- /dev/null +++ b/cryptography/test_vectors/wycheproof/ed25519_test.json @@ -0,0 +1,3327 @@ +{ + "algorithm": "EDDSA", + "schema": "eddsa_verify_schema_v1.json", + "numberOfTests": 150, + "header": [ + "Test vectors of type EddsaVerify are intended for testing" + ], + "notes": { + "CompressedSignature": { + "bugType": "CAN_OF_WORMS", + "description": "The test vector contains a signature where r and s overlap or where 0 bytes were cut from the signature. This signature was specifically generated.", + "effect": "The effect of the bug is unclear without further analysis. It could be rather benign and just allow signature malleability in some cases or it could hide a more severe flaw." + }, + "InvalidEncoding": { + "bugType": "CAN_OF_WORMS", + "description": "The test vector contains a signature with an invalid encoding of the values. The vector checks that invalid encodings are not accepted.", + "effect": "The effect of accepting such signatures is unclear. It could lead to signature malleability, be benign, or hide something more severe." + }, + "InvalidKtv": { + "bugType": "UNKNOWN", + "description": "The test vector contains a known invalid signature." + }, + "InvalidSignature": { + "bugType": "AUTH_BYPASS", + "description": "The test vector contains a signature with edge case values such as 0 or the order of the group.", + "effect": "The effect of accepting such signatures probably indicates that signatures can be forged without even knowing the message itself." + }, + "Ktv": { + "bugType": "BASIC", + "description": "The test vector contains a known valid signature." + }, + "SignatureMalleability": { + "bugType": "SIGNATURE_MALLEABILITY", + "description": "EdDSA signatures are non-malleable, if implemented correctly. If an implementation fails to check the range of S then it may be possible to modify a signature in such a way that it still verifies. See RFC 8032, Section 5.2.7 and Section 8.4." + }, + "SignatureWithGarbage": { + "bugType": "SIGNATURE_MALLEABILITY", + "description": "The test vector contains a signature with additional content. EdDSA signature are expected to be non-malleable. Signatures of the wrong length should be rejected. See RFC 8032, Section 5.2.7 and Section 8.4." + }, + "TinkOverflow": { + "bugType": "KNOWN_BUG", + "description": "The test vector contains a signature that caused an arithmetic overflow in tink." + }, + "TruncatedSignature": { + "bugType": "AUTH_BYPASS", + "description": "The test vector contains a signature that was truncated.", + "effect": "Accepting such signatures likely means that signatures can be forged." + }, + "Valid": { + "bugType": "BASIC", + "description": "The test vector is an ordinary valid signature." + } + }, + "testGroups": [ + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa" + }, + "publicKeyDer": "302a300506032b65700321007d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAfU0Of2FTpptiQrUiq77mhf2kQg+INLEIw72uNp71Sfo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "fU0Of2FTpptiQrUiq77mhf2kQg-INLEIw72uNp71Sfo" + }, + "tests": [ + { + "tcId": 1, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "", + "sig": "d4fbdb52bfa726b44d1786a8c0d171c3e62ca83c9e5bbe63de0bb2483f8fd6cc1429ab72cafc41ab56af02ff8fcc43b99bfe4c7ae940f60f38ebaa9d311c4007", + "result": "valid" + }, + { + "tcId": 2, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "78", + "sig": "d80737358ede548acb173ef7e0399f83392fe8125b2ce877de7975d8b726ef5b1e76632280ee38afad12125ea44b961bf92f1178c9fa819d020869975bcbe109", + "result": "valid" + }, + { + "tcId": 3, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d", + "result": "valid" + }, + { + "tcId": 4, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "48656c6c6f", + "sig": "1c1ad976cbaae3b31dee07971cf92c928ce2091a85f5899f5e11ecec90fc9f8e93df18c5037ec9b29c07195ad284e63d548cd0a6fe358cc775bd6c1608d2c905", + "result": "valid" + }, + { + "tcId": 5, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bf0cf5b3a289976458a1be6277a5055545253b45b07dcc1abd96c8b989c00f301", + "result": "valid" + }, + { + "tcId": 6, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "000000000000000000000000", + "sig": "d46543bfb892f84ec124dcdfc847034c19363bf3fc2fa89b1267833a14856e52e60736918783f950b6f1dd8d40dc343247cd43ce054c2d68ef974f7ed0f3c60f", + "result": "valid" + }, + { + "tcId": 7, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161", + "sig": "879350045543bc14ed2c08939b68c30d22251d83e018cacbaf0c9d7a48db577e80bdf76ce99e5926762bc13b7b3483260a5ef63d07e34b58eb9c14621ac92f00", + "result": "valid" + }, + { + "tcId": 8, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60", + "sig": "7bdc3f9919a05f1d5db4a3ada896094f6871c1f37afc75db82ec3147d84d6f237b7e5ecc26b59cfea0c7eaf1052dc427b0f724615be9c3d3e01356c65b9b5109", + "result": "valid" + }, + { + "tcId": 9, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "ffffffffffffffffffffffffffffffff", + "sig": "5dbd7360e55aa38e855d6ad48c34bd35b7871628508906861a7c4776765ed7d1e13d910faabd689ec8618b78295c8ab8f0e19c8b4b43eb8685778499e943ae04", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa" + }, + "publicKeyDer": "302a300506032b65700321007d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAfU0Of2FTpptiQrUiq77mhf2kQg+INLEIw72uNp71Sfo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "fU0Of2FTpptiQrUiq77mhf2kQg-INLEIw72uNp71Sfo" + }, + "tests": [ + { + "tcId": 10, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "invalid" + }, + { + "tcId": 11, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "00000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000", + "result": "invalid" + }, + { + "tcId": 12, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "0000000000000000000000000000000000000000000000000000000000000000ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010", + "result": "invalid" + }, + { + "tcId": 13, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "0000000000000000000000000000000000000000000000000000000000000000edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010", + "result": "invalid" + }, + { + "tcId": 14, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "0000000000000000000000000000000000000000000000000000000000000000edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "result": "invalid" + }, + { + "tcId": 15, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "result": "invalid" + }, + { + "tcId": 16, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "01000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000", + "result": "invalid" + }, + { + "tcId": 17, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "0100000000000000000000000000000000000000000000000000000000000000ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010", + "result": "invalid" + }, + { + "tcId": 18, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "0100000000000000000000000000000000000000000000000000000000000000edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010", + "result": "invalid" + }, + { + "tcId": 19, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "0100000000000000000000000000000000000000000000000000000000000000edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "result": "invalid" + }, + { + "tcId": 20, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000", + "result": "invalid" + }, + { + "tcId": 21, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edd3f55c1a631258d69cf7a2def9de14000000000000000000000000000000100100000000000000000000000000000000000000000000000000000000000000", + "result": "invalid" + }, + { + "tcId": 22, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010ecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010", + "result": "invalid" + }, + { + "tcId": 23, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010", + "result": "invalid" + }, + { + "tcId": 24, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "result": "invalid" + }, + { + "tcId": 25, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000", + "result": "invalid" + }, + { + "tcId": 26, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f0100000000000000000000000000000000000000000000000000000000000000", + "result": "invalid" + }, + { + "tcId": 27, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fecd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010", + "result": "invalid" + }, + { + "tcId": 28, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fedd3f55c1a631258d69cf7a2def9de1400000000000000000000000000000010", + "result": "invalid" + }, + { + "tcId": 29, + "comment": "special values for r and s", + "flags": [ + "InvalidSignature" + ], + "msg": "3f", + "sig": "edffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fedffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f", + "result": "invalid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa" + }, + "publicKeyDer": "302a300506032b65700321007d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAfU0Of2FTpptiQrUiq77mhf2kQg+INLEIw72uNp71Sfo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "fU0Of2FTpptiQrUiq77mhf2kQg-INLEIw72uNp71Sfo" + }, + "tests": [ + { + "tcId": 30, + "comment": "empty signature", + "flags": [ + "TruncatedSignature" + ], + "msg": "54657374", + "sig": "", + "result": "invalid" + }, + { + "tcId": 31, + "comment": "s missing", + "flags": [ + "TruncatedSignature" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0", + "result": "invalid" + }, + { + "tcId": 32, + "comment": "signature too short", + "flags": [ + "TruncatedSignature" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946", + "result": "invalid" + }, + { + "tcId": 33, + "comment": "signature too long", + "flags": [ + "SignatureWithGarbage" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d2020", + "result": "invalid" + }, + { + "tcId": 34, + "comment": "include pk in signature", + "flags": [ + "SignatureWithGarbage" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa", + "result": "invalid" + }, + { + "tcId": 35, + "comment": "prepending 0 byte to signature", + "flags": [ + "SignatureWithGarbage" + ], + "msg": "54657374", + "sig": "007c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d", + "result": "invalid" + }, + { + "tcId": 36, + "comment": "prepending 0 byte to s", + "flags": [ + "SignatureWithGarbage" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0007a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d", + "result": "invalid" + }, + { + "tcId": 37, + "comment": "appending 0 byte to signature", + "flags": [ + "SignatureWithGarbage" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b30d00", + "result": "invalid" + }, + { + "tcId": 38, + "comment": "removing 0 byte from signature", + "flags": [ + "CompressedSignature" + ], + "msg": "546573743137", + "sig": "93de3ca252426c95f735cb9edd92e83321ac62372d5aa5b379786bae111ab6b17251330e8f9a7c30d6993137c596007d7b001409287535ac4804e662bc58a3", + "result": "invalid" + }, + { + "tcId": 39, + "comment": "removing 0 byte from signature", + "flags": [ + "CompressedSignature" + ], + "msg": "54657374313236", + "sig": "dffed33a7f420b62bb1731cfd03be805affd18a281ec02b1067ba6e9d20826569e742347df59c88ae96db1f1969fb189b0ec34381d85633e1889da48d95e0e", + "result": "invalid" + }, + { + "tcId": 40, + "comment": "removing leading 0 byte from signature", + "flags": [ + "CompressedSignature" + ], + "msg": "546573743530", + "sig": "6e170c719577c25e0e1e8b8aa7a6346f8b109f37385cc2e85dc3b4c0f46a9c6bcafd67f52324c5dbaf40a1b673fb29c4a56052d2d6999d0838a8337bccb502", + "result": "invalid" + }, + { + "tcId": 41, + "comment": "dropping byte from signature", + "flags": [ + "CompressedSignature" + ], + "msg": "54657374333437", + "sig": "b0928b46e99fbbad3f5cb502d2cd309d94a7e86cfd4d84b1fcf4cea18075a9c36993c0582dba1e9e519fae5a8654f454201ae0c3cb397c37b8f4f8eef18400", + "result": "invalid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa" + }, + "publicKeyDer": "302a300506032b65700321007d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAfU0Of2FTpptiQrUiq77mhf2kQg+INLEIw72uNp71Sfo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "fU0Of2FTpptiQrUiq77mhf2kQg-INLEIw72uNp71Sfo" + }, + "tests": [ + { + "tcId": 42, + "comment": "modified bit 0 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "647c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b1d125e5538f38afbcc1c84e489521083041d24bc6240767029da063271a1ff0c", + "result": "invalid" + }, + { + "tcId": 43, + "comment": "modified bit 1 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "677c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bc108ca4b87a49c9ed2cf383aecad8f54a962b2899da891e12004d7993a627e01", + "result": "invalid" + }, + { + "tcId": 44, + "comment": "modified bit 2 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "617c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b9ce23fc6213ed5b87912e9bbf92f5e2c780eae26d15c50a112d1e97d2ea33c06", + "result": "invalid" + }, + { + "tcId": 45, + "comment": "modified bit 7 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "e57c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bbb3eb51cd98dddb235a5f46f2bded6af184a58d09cce928bda43f41d69118a03", + "result": "invalid" + }, + { + "tcId": 46, + "comment": "modified bit 8 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657d1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bcd237dda9a116501f67a5705a854b9adc304f34720803a91b324f2c13e0f5a09", + "result": "invalid" + }, + { + "tcId": 47, + "comment": "modified bit 16 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1592402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b6b167bbdc0d881cc04d28905552c1876f3709851abc5007376940cc8a435c300", + "result": "invalid" + }, + { + "tcId": 48, + "comment": "modified bit 31 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1412402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b7fd2ac7da14afffcceeb13f2a0d6b887941cb1a5eb57a52f3cb131a16cce7b0e", + "result": "invalid" + }, + { + "tcId": 49, + "comment": "modified bit 32 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492412ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2b7373ba13ebbef99cd2a8ead55ce735c987d85a35320925a8e871702dc7c5c40d", + "result": "invalid" + }, + { + "tcId": 50, + "comment": "modified bit 63 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab54e03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bd35bd331c03f0855504ca1cab87b83c36a028425a3cf007ede4f4254c261cb00", + "result": "invalid" + }, + { + "tcId": 51, + "comment": "modified bit 64 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce02e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2bcb35101f73cf467deac8c1a03b6c3dc35af544132734b7e57ab20c89b2e4750d", + "result": "invalid" + }, + { + "tcId": 52, + "comment": "modified bit 97 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f2384d051b9cf3570f1207fc78c1bcc98c281c2bb58d2e8878290bff8d3355fdd4ea381924ee578752354eb6dee678ab4011c301", + "result": "invalid" + }, + { + "tcId": 53, + "comment": "modified bit 127 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f0384d851b9cf3570f1207fc78c1bcc98c281c2bb978c866187ffb1cc7b29a0b4045aefc08768df65717194ff0c6e63f4dea0d02", + "result": "invalid" + }, + { + "tcId": 54, + "comment": "modified bit 240 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281d2b0576ecf8eaf675f00f3dfbe19f75b83b7607a6c96414f6821af920a2498d0305", + "result": "invalid" + }, + { + "tcId": 55, + "comment": "modified bit 247 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c289c2be5241a345c7b5428054c74b7c382fa10d4a5f1e8f8b79a71d3fdea2254f1ff0e", + "result": "invalid" + }, + { + "tcId": 56, + "comment": "modified bit 248 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c2a63950c85cd6dc96364e768de50ff7732b538f8a0b1615d799190ab600849230e", + "result": "invalid" + }, + { + "tcId": 57, + "comment": "modified bit 253 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c0b543bd3da0a56a8c9c152f59c9fec12f31fa66434d48b817b30d90cb4efa8b501", + "result": "invalid" + }, + { + "tcId": 58, + "comment": "modified bit 254 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281c6b8da07efd07a6dafb015ed6a32fe136319a972ffbc341f3a0beae97ccf8136505", + "result": "invalid" + }, + { + "tcId": 59, + "comment": "modified bit 255 in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "657c1492402ab5ce03e2c3a7f0384d051b9cf3570f1207fc78c1bcc98c281cab227aedf259f910f0f3a759a335062665217925d019173b88917eae294f75d40f", + "result": "invalid" + }, + { + "tcId": 60, + "comment": "R==0", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "0000000000000000000000000000000000000000000000000000000000000000e0b8e7770d51c7a36375d006c5bffd6af43ff54aaf47e4330dc118c71d61ec02", + "result": "invalid" + }, + { + "tcId": 61, + "comment": "invalid R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff463a1908382e7eb7693acef9884f7cf931a215e0791876be22c631a59881fd0e", + "result": "invalid" + }, + { + "tcId": 62, + "comment": "all bits flipped in R", + "flags": [ + "InvalidEncoding" + ], + "msg": "313233343030", + "sig": "9a83eb6dbfd54a31fc1d3c580fc7b2fae4630ca8f0edf803873e433673d7e3d40e94254586cb6188c5386c3febed477cb9a6cb29e3979adc4cb27cf5278fb70a", + "result": "invalid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa" + }, + "publicKeyDer": "302a300506032b65700321007d4d0e7f6153a69b6242b522abbee685fda4420f8834b108c3bdae369ef549fa", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAfU0Of2FTpptiQrUiq77mhf2kQg+INLEIw72uNp71Sfo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "fU0Of2FTpptiQrUiq77mhf2kQg-INLEIw72uNp71Sfo" + }, + "tests": [ + { + "tcId": 63, + "comment": "checking malleability ", + "flags": [ + "SignatureMalleability" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab067654bce3832c2d76f8f6f5dafc08d9339d4eef676573336a5c51eb6f946b31d", + "result": "invalid" + }, + { + "tcId": 64, + "comment": "checking malleability ", + "flags": [ + "SignatureMalleability" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab05439412b5395d42f462c67008eba6ca839d4eef676573336a5c51eb6f946b32d", + "result": "invalid" + }, + { + "tcId": 65, + "comment": "checking malleability ", + "flags": [ + "SignatureMalleability" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab02ee12ce5875bf9dff26556464bae2ad239d4eef676573336a5c51eb6f946b34d", + "result": "invalid" + }, + { + "tcId": 66, + "comment": "checking malleability ", + "flags": [ + "SignatureMalleability" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0e2300459f1e742404cd934d2c595a6253ad4eef676573336a5c51eb6f946b38d", + "result": "invalid" + }, + { + "tcId": 67, + "comment": "checking malleability ", + "flags": [ + "SignatureMalleability" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b32d", + "result": "invalid" + }, + { + "tcId": 68, + "comment": "checking malleability ", + "flags": [ + "SignatureMalleability" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b34d", + "result": "invalid" + }, + { + "tcId": 69, + "comment": "checking malleability ", + "flags": [ + "SignatureMalleability" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab07a9155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b38d", + "result": "invalid" + }, + { + "tcId": 70, + "comment": "checking malleability ", + "flags": [ + "SignatureMalleability" + ], + "msg": "54657374", + "sig": "7c38e026f29e14aabd059a0f2db8b0cd783040609a8be684db12f82a27774ab0679155711ecfaf7f99f277bad0c6ae7e39d4eef676573336a5c51eb6f946b38d", + "result": "invalid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "a12c2beb77265f2aac953b5009349d94155a03ada416aad451319480e983ca4c" + }, + "publicKeyDer": "302a300506032b6570032100a12c2beb77265f2aac953b5009349d94155a03ada416aad451319480e983ca4c", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAoSwr63cmXyqslTtQCTSdlBVaA62kFqrUUTGUgOmDykw=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "oSwr63cmXyqslTtQCTSdlBVaA62kFqrUUTGUgOmDykw" + }, + "tests": [ + { + "tcId": 71, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "", + "sig": "5056325d2ab440bf30bbf0f7173199aa8b4e6fbc091cf3eb6bc6cf87cd73d992ffc216c85e4ab5b8a0bbc7e9a6e9f8d33b7f6e5ac0ffdc22d9fcaf784af84302", + "result": "valid" + }, + { + "tcId": 72, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "78", + "sig": "481fafbf4364d7b682475282f517a3ac0538c9a6b6a562e99a3d8e5afb4f90a559b056b9f07af023905753b02d95eb329a35c77f154b79abbcd291615ce42f02", + "result": "valid" + }, + { + "tcId": 73, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "54657374", + "sig": "8a9bb4c465a3863abc9fd0dd35d80bb28f7d33d37d74679802d63f82b20da114b8d765a1206b3e9ad7cf2b2d8d778bb8651f1fa992db293c0039eacb6161480f", + "result": "valid" + }, + { + "tcId": 74, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "48656c6c6f", + "sig": "d839c20abfda1fd429531831c64f813f84b913e9928540310cf060b44c3dbf9457d44a7721fdc0d67724ff81cb450dd39b10cfb65db15dda4b8bf09d26bd3801", + "result": "valid" + }, + { + "tcId": 75, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "313233343030", + "sig": "9bbb1052dcfa8ad2715c2eb716ae4f1902dea353d42ee09fd4c0b4fcb8b52b5219e2200016e1199d0061891c263e31b0bc3b55673c19610c4e0fa5408004160b", + "result": "valid" + }, + { + "tcId": 76, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "000000000000000000000000", + "sig": "f63b5c0667c7897fc283296416f7f60e84bbde9cbd832e56be463ed9f568069702b17a2f7c341ebf590706a6388ac76ac613c1675ec0f2c7118f2573422a500b", + "result": "valid" + }, + { + "tcId": 77, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "6161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161", + "sig": "1bc44d7001e6b5b9090fef34b2ca480f9786bbefa7d279353e5881e8dfb91b803ccd46500e270ef0109bfd741037558832120bc2a4f20fbe7b5fb3c3aaf23e08", + "result": "valid" + }, + { + "tcId": 78, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f505152535455565758595a5b5c5d5e5f60", + "sig": "ea8e22143b02372e76e99aece3ed36aec529768a27e2bb49bdc135d44378061e1f62d1ac518f33ebf37b2ee8cc6dde68a4bd7d4a2f4d6cb77f015f71ca9fc30d", + "result": "valid" + }, + { + "tcId": 79, + "comment": "", + "flags": [ + "Valid" + ], + "msg": "ffffffffffffffffffffffffffffffff", + "sig": "8acd679e1a914fc45d5fa83d3021f0509c805c8d271df54e52f43cfbd00cb6222bf81d58fe1de2de378df67ee9f453786626961fe50a9b05f12b6f0899ebdd0a", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a" + }, + "publicKeyDer": "302a300506032b6570032100d75a980182b10ab7d54bfed3c964073a0ee172f3daa62325af021a68f707511a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA11qYAYKxCrfVS/7TyWQHOg7hcvPapiMlrwIaaPcHURo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "11qYAYKxCrfVS_7TyWQHOg7hcvPapiMlrwIaaPcHURo" + }, + "tests": [ + { + "tcId": 80, + "comment": "draft-josefsson-eddsa-ed25519-02: Test 1", + "flags": [ + "Ktv" + ], + "msg": "", + "sig": "e5564300c360ac729086e2cc806e828a84877f1eb8e5d974d873e065224901555fb8821590a33bacc61e39701cf9b46bd25bf5f0595bbe24655141438e7a100b", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "3d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c" + }, + "publicKeyDer": "302a300506032b65700321003d4017c3e843895a92b70aa74d1b7ebc9c982ccf2ec4968cc0cd55f12af4660c", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAPUAXw+hDiVqStwqnTRt+vJyYLM8uxJaMwM1V8Sr0Zgw=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "PUAXw-hDiVqStwqnTRt-vJyYLM8uxJaMwM1V8Sr0Zgw" + }, + "tests": [ + { + "tcId": 81, + "comment": "draft-josefsson-eddsa-ed25519-02: Test 2", + "flags": [ + "Ktv" + ], + "msg": "72", + "sig": "92a009a9f0d4cab8720e820b5f642540a2b27b5416503f8fb3762223ebdb69da085ac1e43e15996e458f3613d0f11d8c387b2eaeb4302aeeb00d291612bb0c00", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025" + }, + "publicKeyDer": "302a300506032b6570032100fc51cd8e6218a1a38da47ed00230f0580816ed13ba3303ac5deb911548908025", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA/FHNjmIYoaONpH7QAjDwWAgW7RO6MwOsXeuRFUiQgCU=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "_FHNjmIYoaONpH7QAjDwWAgW7RO6MwOsXeuRFUiQgCU" + }, + "tests": [ + { + "tcId": 82, + "comment": "draft-josefsson-eddsa-ed25519-02: Test 3", + "flags": [ + "Ktv" + ], + "msg": "af82", + "sig": "6291d657deec24024827e69c3abe01a30ce548a284743a445e3680d7db5ac3ac18ff9b538d16f290ae67f760984dc6594a7c15e9716ed28dc027beceea1ec40a", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e" + }, + "publicKeyDer": "302a300506032b6570032100278117fc144c72340f67d0f2316e8386ceffbf2b2428c9c51fef7c597f1d426e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAJ4EX/BRMcjQPZ9DyMW6Dhs7/vyskKMnFH+98WX8dQm4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "J4EX_BRMcjQPZ9DyMW6Dhs7_vyskKMnFH-98WX8dQm4" + }, + "tests": [ + { + "tcId": 83, + "comment": "draft-josefsson-eddsa-ed25519-02: Test 1024", + "flags": [ + "Ktv" + ], + "msg": "08b8b2b733424243760fe426a4b54908632110a66c2f6591eabd3345e3e4eb98fa6e264bf09efe12ee50f8f54e9f77b1e355f6c50544e23fb1433ddf73be84d879de7c0046dc4996d9e773f4bc9efe5738829adb26c81b37c93a1b270b20329d658675fc6ea534e0810a4432826bf58c941efb65d57a338bbd2e26640f89ffbc1a858efcb8550ee3a5e1998bd177e93a7363c344fe6b199ee5d02e82d522c4feba15452f80288a821a579116ec6dad2b3b310da903401aa62100ab5d1a36553e06203b33890cc9b832f79ef80560ccb9a39ce767967ed628c6ad573cb116dbefefd75499da96bd68a8a97b928a8bbc103b6621fcde2beca1231d206be6cd9ec7aff6f6c94fcd7204ed3455c68c83f4a41da4af2b74ef5c53f1d8ac70bdcb7ed185ce81bd84359d44254d95629e9855a94a7c1958d1f8ada5d0532ed8a5aa3fb2d17ba70eb6248e594e1a2297acbbb39d502f1a8c6eb6f1ce22b3de1a1f40cc24554119a831a9aad6079cad88425de6bde1a9187ebb6092cf67bf2b13fd65f27088d78b7e883c8759d2c4f5c65adb7553878ad575f9fad878e80a0c9ba63bcbcc2732e69485bbc9c90bfbd62481d9089beccf80cfe2df16a2cf65bd92dd597b0707e0917af48bbb75fed413d238f5555a7a569d80c3414a8d0859dc65a46128bab27af87a71314f318c782b23ebfe808b82b0ce26401d2e22f04d83d1255dc51addd3b75a2b1ae0784504df543af8969be3ea7082ff7fc9888c144da2af58429ec96031dbcad3dad9af0dcbaaaf268cb8fcffead94f3c7ca495e056a9b47acdb751fb73e666c6c655ade8297297d07ad1ba5e43f1bca32301651339e22904cc8c42f58c30c04aafdb038dda0847dd988dcda6f3bfd15c4b4c4525004aa06eeff8ca61783aacec57fb3d1f92b0fe2fd1a85f6724517b65e614ad6808d6f6ee34dff7310fdc82aebfd904b01e1dc54b2927094b2db68d6f903b68401adebf5a7e08d78ff4ef5d63653a65040cf9bfd4aca7984a74d37145986780fc0b16ac451649de6188a7dbdf191f64b5fc5e2ab47b57f7f7276cd419c17a3ca8e1b939ae49e488acba6b965610b5480109c8b17b80e1b7b750dfc7598d5d5011fd2dcc5600a32ef5b52a1ecc820e308aa342721aac0943bf6686b64b2579376504ccc493d97e6aed3fb0f9cd71a43dd497f01f17c0e2cb3797aa2a2f256656168e6c496afc5fb93246f6b1116398a346f1a641f3b041e989f7914f90cc2c7fff357876e506b50d334ba77c225bc307ba537152f3f1610e4eafe595f6d9d90d11faa933a15ef1369546868a7f3a45a96768d40fd9d03412c091c6315cf4fde7cb68606937380db2eaaa707b4c4185c32eddcdd306705e4dc1ffc872eeee475a64dfac86aba41c0618983f8741c5ef68d3a101e8a3b8cac60c905c15fc910840b94c00a0b9d0", + "sig": "0aab4c900501b3e24d7cdf4663326a3a87df5e4843b2cbdb67cbf6e460fec350aa5371b1508f9f4528ecea23c436d94b5e8fcd4f681e30a6ac00a9704a188a03", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86" + }, + "publicKeyDer": "302a300506032b6570032100100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAEA/fR/uU8VNqT3w/2ic4P6Azdaj1J8U35vFwPEf5T4Y=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "EA_fR_uU8VNqT3w_2ic4P6Azdaj1J8U35vFwPEf5T4Y" + }, + "tests": [ + { + "tcId": 84, + "comment": "Signature with S just under the bound. [David Benjamin]", + "flags": [ + "Ktv" + ], + "msg": "124e583f8b8eca58bb29c271b41d36986bbc45541f8e51f9cb0133eca447601e", + "sig": "dac119d6ca87fc59ae611c157048f4d4fc932a149dbe20ec6effd1436abf83ea05c7df0fef06147241259113909bc71bd3c53ba4464ffcad3c0968f2ffffff0f", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86" + }, + "publicKeyDer": "302a300506032b6570032100100fdf47fb94f1536a4f7c3fda27383fa03375a8f527c537e6f1703c47f94f86", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAEA/fR/uU8VNqT3w/2ic4P6Azdaj1J8U35vFwPEf5T4Y=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "EA_fR_uU8VNqT3w_2ic4P6Azdaj1J8U35vFwPEf5T4Y" + }, + "tests": [ + { + "tcId": 85, + "comment": "Signature with S just above the bound. [David Benjamin]", + "flags": [ + "InvalidKtv" + ], + "msg": "6a0bc2b0057cedfc0fa2e3f7f7d39279b30f454a69dfd1117c758d86b19d85e0", + "sig": "0971f86d2c9c78582524a103cb9cf949522ae528f8054dc20107d999be673ff4e25ebf2f2928766b1248bec6e91697775f8446639ede46ad4df4053000000010", + "result": "invalid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "8fd659b77b558ed93882c1157438450ac86ec62d421d568e98ee236f3810295a" + }, + "publicKeyDer": "302a300506032b65700321008fd659b77b558ed93882c1157438450ac86ec62d421d568e98ee236f3810295a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAj9ZZt3tVjtk4gsEVdDhFCshuxi1CHVaOmO4jbzgQKVo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "j9ZZt3tVjtk4gsEVdDhFCshuxi1CHVaOmO4jbzgQKVo" + }, + "tests": [ + { + "tcId": 86, + "comment": "Random test failure 1", + "flags": [ + "Ktv" + ], + "msg": "b0729a713593a92e46b56eaa66b9e435f7a09a8e7de03b078f6f282285276635f301e7aaafe42187c45d6f5b13f9f16b11195cc125c05b90d24dfe4c", + "sig": "7db17557ac470c0eda4eedaabce99197ab62565653cf911f632ee8be0e5ffcfc88fb94276b42e0798fd3aa2f0318be7fc6a29fae75f70c3dcdc414a0ad866601", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "2a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082" + }, + "publicKeyDer": "302a300506032b65700321002a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAKmBr9nrHcMYHA4sAQQGzJe21ae/TQT0tHyw+a05uMII=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "KmBr9nrHcMYHA4sAQQGzJe21ae_TQT0tHyw-a05uMII" + }, + "tests": [ + { + "tcId": 87, + "comment": "Random test failure 2", + "flags": [ + "Ktv" + ], + "msg": "a8546e50ba31cae3234310d32672447be213fad91a227a19669c53d309b959782b0e6b71f8791fdb470043b58122003157d2d96a43a6cbd7d3a8d86bf4c97391883e268d50af80e1e6e12939c2bd50ca746cdadfad4edf1bda875299740724148efb1ebe73fb60088cda890317658627a5f7ab5a0c075d9d8f3f97b6492b35519e50ff6b38377432a7081f9176bb1c29a862deac1336ca20b097a47829cec10a6a7cec178eda2d12f6dc6c87f910454af0123555ba184e68804d9cced60fd5c8c90943e56599c8f0ba59a38491ba5e5a53460682474c07e40ca142983314fd762856bb1093f359da6eb0a756bd93a3160c10dd8feea6b97e7c6a17cb54bd5d7649c05c66d7bdee056671dfdaf689fa3945bb8e29a429f4bd5d355dce9687b06f01d5e33e3999f0e8", + "sig": "67d84d4c3945aaf06e06d524be63acbfb5dbb1988c4aea96a5ee9f7a9b9eecc29df4f66b8aa1d9e8607a58fb1ef0c2ad69aac005b4f58e34103344a9c8871a09", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051" + }, + "publicKeyDer": "302a300506032b6570032100c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAyclGy8VUSsdO70kfB8WIHBb69+wxzkqpG7YK57RTkFE=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "yclGy8VUSsdO70kfB8WIHBb69-wxzkqpG7YK57RTkFE" + }, + "tests": [ + { + "tcId": 88, + "comment": "Random test failure 3", + "flags": [ + "Ktv" + ], + "msg": "cd2212eddb0706f62c995cef958634f0cb7793444cbf4d30e81c27c41ebea6cb02607510131f9c015692dfd521b148841e9a2d3564d20ac401f6cb8e40f520fe0cafbeaa88840b83013369d879f013463fe52a13267aa0c8c59c45cde9399cd1e6be8cc64cf48315ac2eb31a1c567a4fb7d601746d1f63b5ac020712adbbe07519bded6f", + "sig": "24087d47f3e20af51b9668ae0a88ce76586802d0ec75d8c0f28fc30962b5e1d1a1d509571a1624ed125a8df92a6e963728d6b5de99200b8e285f70feb6f05207", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 89, + "comment": "Random test failure 4", + "flags": [ + "Ktv" + ], + "msg": "ec5c7cb078", + "sig": "d920d421a5956b69bfe1ba834c025e2babb6c7a6d78c97de1d9bb1116dfdd1185147b2887e34e15578172e150774275ea2aad9e02106f7e8ca1caa669a066f0c", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 90, + "comment": "Random test failure 5", + "flags": [ + "Ktv" + ], + "msg": "4668c6a76f0e482190a7175b9f3806a5fe4314a004fa69f988373f7a", + "sig": "4f62daf7f7c162038552ad7d306e195baa37ecf6ca7604142679d7d1128e1f8af52e4cb3545748c44ef1ff1c64e877e4f4d248259b7f6eb56e3ef72097dc8e0c", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "c29ec1894e06d27b4e40486b4fa5063d66a746c7f9c323b12203c03b72b8b78a" + }, + "publicKeyDer": "302a300506032b6570032100c29ec1894e06d27b4e40486b4fa5063d66a746c7f9c323b12203c03b72b8b78a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAwp7BiU4G0ntOQEhrT6UGPWanRsf5wyOxIgPAO3K4t4o=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "wp7BiU4G0ntOQEhrT6UGPWanRsf5wyOxIgPAO3K4t4o" + }, + "tests": [ + { + "tcId": 91, + "comment": "Random test failure 6", + "flags": [ + "Ktv" + ], + "msg": "0f325ffd87e58131ffa23c05ea4579513b287fdba87b44", + "sig": "6669acf94667c5b541afe5307bde9476b13ae7e0e6058a772101ac8eb0a94331428eb4db0a2c68a9b6c1763b8624dab259b0876cdcfaeacc17b21a18e3fc010a", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10" + }, + "publicKeyDer": "302a300506032b6570032100cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAz9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "z9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA" + }, + "tests": [ + { + "tcId": 92, + "comment": "Random test failure 7", + "flags": [ + "Ktv" + ], + "msg": "ec5c7cb078", + "sig": "30490c28f806298225df62103521dcee047153912c33ab8ab8bbdd1ffabd70fd4fdb360f05be535b067d1cf4e78c2cb432206bf280aab3bd21aaa1cb894c5b06", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 93, + "comment": "Random test failure 8", + "flags": [ + "Ktv" + ], + "msg": "5dc9bb87eb11621a93f92abe53515697d2611b2eef73", + "sig": "deecafb6f2ede73fec91a6f10e45b9c1c61c4b9bfbe6b6147e2de0b1df6938971f7896c3ab83851fb5d9e537037bff0fca0ccb4a3cc38f056f91f7d7a0557e08", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10" + }, + "publicKeyDer": "302a300506032b6570032100cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAz9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "z9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA" + }, + "tests": [ + { + "tcId": 94, + "comment": "Random test failure 9", + "flags": [ + "Ktv" + ], + "msg": "67484059b2490b1a0a4f8dee77979e26", + "sig": "4cd4f77ed473a6647387f3163541c67a1708a3c3bd1673247cb87f0cb68b3c56f04bfa72970c8a483efe659c87009ab4020b590b6641316b3deddb5450544e02", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 95, + "comment": "Random test failure 10", + "flags": [ + "Ktv" + ], + "msg": "7dcfe60f881e1285676f35b68a1b2dbcdd7be6f719a288ababc28d36e3a42ac3010a1ca54b32760e74", + "sig": "7f8663cf98cbd39d5ff553f00bcf3d0d520605794f8866ce75714d77cc51e66c91818b657d7b0dae430a68353506edc4a714c345f5ddb5c8b958ba3d035f7a01", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10" + }, + "publicKeyDer": "302a300506032b6570032100cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAz9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "z9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA" + }, + "tests": [ + { + "tcId": 96, + "comment": "Random test failure 11", + "flags": [ + "Ktv" + ], + "msg": "a020a4381dc9141f47ee508871ab7a8b5a3648727c4281ae9932376f23a8e1bcda0626b7129197d864178631ec89c4332dbb18", + "sig": "1e41a24fe732bd7cab14c2a2f5134ee8c87fcbd2e987e60957ed9239e5c32404d56977e1b4282871896cb10625a1937468e4dc266e16a9c1b8e9891177eca802", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 97, + "comment": "Random test failure 12", + "flags": [ + "Ktv" + ], + "msg": "58e456064dff471109def4ca27fa8310a1df32739655b624f27e6418d34b7f007173f3faa5", + "sig": "6aab49e5c0bc309b783378ee03ffda282f0185cdf94c847701ff307a6ee8d0865411c44e0a8206f6a5f606107451940c2593af790ce1860f4c14ab25b2deae08", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "529919c9c780985a841c42ba6c180ff2d67a276ccfbe281080e47ab71a758f56" + }, + "publicKeyDer": "302a300506032b6570032100529919c9c780985a841c42ba6c180ff2d67a276ccfbe281080e47ab71a758f56", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAUpkZyceAmFqEHEK6bBgP8tZ6J2zPvigQgOR6txp1j1Y=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "UpkZyceAmFqEHEK6bBgP8tZ6J2zPvigQgOR6txp1j1Y" + }, + "tests": [ + { + "tcId": 98, + "comment": "Random test failure 13", + "flags": [ + "Ktv" + ], + "msg": "e1cbf2d86827825613fb7a85811d", + "sig": "01abfa4d6bbc726b196928ec84fd03f0c953a4fa2b228249562ff1442a4f63a7150b064f3712b51c2af768d2c2711a71aabf8d186833e941a0301b82f0502905", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10" + }, + "publicKeyDer": "302a300506032b6570032100cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAz9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "z9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA" + }, + "tests": [ + { + "tcId": 99, + "comment": "Random test failure 14", + "flags": [ + "Ktv" + ], + "msg": "a25176b3afea318b2ec11ddacb10caf7179c0b3f8eabbfa2895581138d3c1e0e", + "sig": "2a833aadecd9f28235cb5896bf3781521dc71f28af2e91dbe1735a61dce3e31ac15ca24b3fc47817a59d386bbbb2ce60a6adc0a2703bb2bdea8f70f91051f706", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 100, + "comment": "Random test failure 15", + "flags": [ + "Ktv" + ], + "msg": "a1", + "sig": "1a74ed2cbdc7d8f3827014e8e6ecf8fd2698ac8f86833acccdd400df710fe0d6b0543c9cfa00d52bf024ab7ce0d91981944097233ec134d5c7abbd44bfd32d0d", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "2252b3d57c74cbf8bc460dc2e082847926bc022f09ab6ae95756362bfd1167c1" + }, + "publicKeyDer": "302a300506032b65700321002252b3d57c74cbf8bc460dc2e082847926bc022f09ab6ae95756362bfd1167c1", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAIlKz1Xx0y/i8Rg3C4IKEeSa8Ai8Jq2rpV1Y2K/0RZ8E=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "IlKz1Xx0y_i8Rg3C4IKEeSa8Ai8Jq2rpV1Y2K_0RZ8E" + }, + "tests": [ + { + "tcId": 101, + "comment": "Random test failure 16", + "flags": [ + "Ktv" + ], + "msg": "975ef941710071a9e1e6325a0c860becd7c695b5117c3107b686e330e5", + "sig": "af0fd9dda7e03e12313410d8d8844ebb6fe6b7f65141f22d7bcba5695a25414a9e54326fb44d59fb14707899a8aae70857b23d4080d7ab2c396ef3a36d45ce02", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "c0a773110f975de3732355bb7ec7f0c41c091c0252966070205516693b992a4a" + }, + "publicKeyDer": "302a300506032b6570032100c0a773110f975de3732355bb7ec7f0c41c091c0252966070205516693b992a4a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAwKdzEQ+XXeNzI1W7fsfwxBwJHAJSlmBwIFUWaTuZKko=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "wKdzEQ-XXeNzI1W7fsfwxBwJHAJSlmBwIFUWaTuZKko" + }, + "tests": [ + { + "tcId": 102, + "comment": "Random test failure 17", + "flags": [ + "Ktv" + ], + "msg": "", + "sig": "0280427e713378f49d478df6373c6cac847b622b567daa2376c839e7ac10e22c380ab0fa8617c9dcfe76c4d9db5459b21dc1413726e46cc8f387d359e344f407", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10" + }, + "publicKeyDer": "302a300506032b6570032100cfda5b899e35764c5229e59295fe1222b7ddce176643697c29e46ecbba10cf10", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAz9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "z9pbiZ41dkxSKeWSlf4SIrfdzhdmQ2l8KeRuy7oQzxA" + }, + "tests": [ + { + "tcId": 103, + "comment": "Random test failure 18", + "flags": [ + "Ktv" + ], + "msg": "a9e6d94870a67a9fe1cf13b1e6f9150cdd407bf6480ec841ea586ae3935e9787163cf419c1", + "sig": "c97e3190f83bae7729ba473ad46b420b8aad735f0808ea42c0f898ccfe6addd4fd9d9fa3355d5e67ee21ab7e1f805cd07f1fce980e307f4d7ad36cc924eef00c", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 104, + "comment": "Random test failure 19", + "flags": [ + "Ktv" + ], + "msg": "11cb1eafa4c42a8402c4193c4696f7b2e6d4585e4b42dcf1a8b67a80b2da80bc9d4b649fb2f35eaf1f56c426fd0b", + "sig": "14ceb2eaf4688d995d482f44852d71ad878cd7c77b41e60b0065fd01a59b054ee74759224187dbde9e59a763a70277c960892ef89fba997aba2576b2c54ba608", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051" + }, + "publicKeyDer": "302a300506032b6570032100c9c946cbc5544ac74eef491f07c5881c16faf7ec31ce4aa91bb60ae7b4539051", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAyclGy8VUSsdO70kfB8WIHBb69+wxzkqpG7YK57RTkFE=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "yclGy8VUSsdO70kfB8WIHBb69-wxzkqpG7YK57RTkFE" + }, + "tests": [ + { + "tcId": 105, + "comment": "Random test failure 20", + "flags": [ + "Ktv" + ], + "msg": "27d465bc632743522aefa23c", + "sig": "c2656951e2a0285585a51ff0eda7e9a23c2dfd2ffa273aee7808f4604e8f9a8c8ea49e9fce4eb2d8d75d36b7238fe6fc13b6c5d9427dd58f8c6615d033c0bd0f", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "c29ec1894e06d27b4e40486b4fa5063d66a746c7f9c323b12203c03b72b8b78a" + }, + "publicKeyDer": "302a300506032b6570032100c29ec1894e06d27b4e40486b4fa5063d66a746c7f9c323b12203c03b72b8b78a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAwp7BiU4G0ntOQEhrT6UGPWanRsf5wyOxIgPAO3K4t4o=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "wp7BiU4G0ntOQEhrT6UGPWanRsf5wyOxIgPAO3K4t4o" + }, + "tests": [ + { + "tcId": 106, + "comment": "Random test failure 21", + "flags": [ + "Ktv" + ], + "msg": "5ffa", + "sig": "931e5152fcef078c22cc5d6a3a65f06e396289f6f5f2d1efa6340254a53526ef5dc6874eeddf35c3f50991c53cd02bf06313e37d93ee1f7022128ffa3b8f300b", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "529919c9c780985a841c42ba6c180ff2d67a276ccfbe281080e47ab71a758f56" + }, + "publicKeyDer": "302a300506032b6570032100529919c9c780985a841c42ba6c180ff2d67a276ccfbe281080e47ab71a758f56", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAUpkZyceAmFqEHEK6bBgP8tZ6J2zPvigQgOR6txp1j1Y=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "UpkZyceAmFqEHEK6bBgP8tZ6J2zPvigQgOR6txp1j1Y" + }, + "tests": [ + { + "tcId": 107, + "comment": "Random test failure 22", + "flags": [ + "Ktv" + ], + "msg": "25", + "sig": "e4ae21f7a8f4b3b325c161a8c6e53e2edd7005b9c2f8a2e3b0ac4ba94aa80be6f2ee22ac8d4a96b9a3eb73a825e7bb5aff4a3393bf5b4a38119e9c9b1b041106", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "2252b3d57c74cbf8bc460dc2e082847926bc022f09ab6ae95756362bfd1167c1" + }, + "publicKeyDer": "302a300506032b65700321002252b3d57c74cbf8bc460dc2e082847926bc022f09ab6ae95756362bfd1167c1", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAIlKz1Xx0y/i8Rg3C4IKEeSa8Ai8Jq2rpV1Y2K/0RZ8E=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "IlKz1Xx0y_i8Rg3C4IKEeSa8Ai8Jq2rpV1Y2K_0RZ8E" + }, + "tests": [ + { + "tcId": 108, + "comment": "Random test failure 23", + "flags": [ + "Ktv" + ], + "msg": "80fdd6218f29c8c8f6bd820945f9b0854e3a8824", + "sig": "e097e0bd0370bff5bde359175a11b728ee9639095d5df8eda496395565616edfe079977f7d4dc8c75d6113a83d6a55e6e1676408c0967a2906339b43337dcb01", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "2a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082" + }, + "publicKeyDer": "302a300506032b65700321002a606bf67ac770c607038b004101b325edb569efd3413d2d1f2c3e6b4e6e3082", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAKmBr9nrHcMYHA4sAQQGzJe21ae/TQT0tHyw+a05uMII=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "KmBr9nrHcMYHA4sAQQGzJe21ae_TQT0tHyw-a05uMII" + }, + "tests": [ + { + "tcId": 109, + "comment": "Random test failure 24", + "flags": [ + "Ktv" + ], + "msg": "b477b0480bb84642608b908d29a51cf2fce63f24ee95", + "sig": "28fafbb62b4d688fa79e1ac92851f46e319b161f801d4dc09acc21fdd6780a2c4292b8c1003c61c2bcebe7f3f88ccc4bb26d407387c5f27cb8c94cf6ce810405", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 110, + "comment": "Random test failure 25", + "flags": [ + "Ktv" + ], + "msg": "aa365b442d12b7f3c925", + "sig": "83c40ce13d483cc58ff65844875862d93df4bd367af77efa469ec06a8ed9e6d7905a04879535708ddf225567a815c9b941d405c98e918fd0c151165cea7fb101", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "54cda623245759ad6d43e620a606908befc633d60792bc7798447a0ef38e7311" + }, + "publicKeyDer": "302a300506032b657003210054cda623245759ad6d43e620a606908befc633d60792bc7798447a0ef38e7311", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAVM2mIyRXWa1tQ+YgpgaQi+/GM9YHkrx3mER6DvOOcxE=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "VM2mIyRXWa1tQ-YgpgaQi-_GM9YHkrx3mER6DvOOcxE" + }, + "tests": [ + { + "tcId": 111, + "comment": "Random test failure 26", + "flags": [ + "Ktv" + ], + "msg": "27e792b28b2f1702", + "sig": "14d9b497c19b91d43481c55bb6f5056de252d9ecb637575c807e58e9b4c5eac8b284089d97e2192dc242014363208e2c9a3435edf8928fb1d893553e9be4c703", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "2362bac514d5fad33802642e979a1e82de6eb6f1bcbf6a5b304f2bb02b9e57fe" + }, + "publicKeyDer": "302a300506032b65700321002362bac514d5fad33802642e979a1e82de6eb6f1bcbf6a5b304f2bb02b9e57fe", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAI2K6xRTV+tM4AmQul5oegt5utvG8v2pbME8rsCueV/4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "I2K6xRTV-tM4AmQul5oegt5utvG8v2pbME8rsCueV_4" + }, + "tests": [ + { + "tcId": 112, + "comment": "Random test failure 27", + "flags": [ + "Ktv" + ], + "msg": "eef3bb0f617c17d0420c115c21c28e3762edc7b7fb048529b84a9c2bc6", + "sig": "242ddb3a5d938d07af690b1b0ef0fa75842c5f9549bf39c8750f75614c712e7cbaf2e37cc0799db38b858d41aec5b9dd2fca6a3c8e082c10408e2cf3932b9d08", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "32ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e" + }, + "publicKeyDer": "302a300506032b657003210032ad026f693d0d2afe7f4388d91c4c964426fcb9e3665c3ebd8650009b815c8e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAMq0Cb2k9DSr+f0OI2RxMlkQm/LnjZlw+vYZQAJuBXI4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Mq0Cb2k9DSr-f0OI2RxMlkQm_LnjZlw-vYZQAJuBXI4" + }, + "tests": [ + { + "tcId": 113, + "comment": "Random test failure 28", + "flags": [ + "Ktv" + ], + "msg": "475f", + "sig": "71a4a06a34075f2fd47bc3abf4714d46db7e97b08cb6180d3f1539ac50b18ce51f8af8ae95ed21d4fa0daab7235925631ecea1fd9d0d8a2ba7a7583fd04b900c", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "037b55b427dc8daa0f80fcebaf0846902309f8a6cf18b465c0ce9b6539629ac8" + }, + "publicKeyDer": "302a300506032b6570032100037b55b427dc8daa0f80fcebaf0846902309f8a6cf18b465c0ce9b6539629ac8", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAA3tVtCfcjaoPgPzrrwhGkCMJ+KbPGLRlwM6bZTlimsg=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "A3tVtCfcjaoPgPzrrwhGkCMJ-KbPGLRlwM6bZTlimsg" + }, + "tests": [ + { + "tcId": 114, + "comment": "Test case for overflow in signature generation", + "flags": [ + "Ktv" + ], + "msg": "01234567", + "sig": "c964e100033ce8888b23466677da4f4aea29923f642ae508f9d0888d788150636ab9b2c3765e91bbb05153801114d9e52dc700df377212222bb766be4b8c020d", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "9c0007698f177998a7666c7cf7973e2b88e9c4946e33804a7bbe8968d2394b2e" + }, + "publicKeyDer": "302a300506032b65700321009c0007698f177998a7666c7cf7973e2b88e9c4946e33804a7bbe8968d2394b2e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAnAAHaY8XeZinZmx895c+K4jpxJRuM4BKe76JaNI5Sy4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "nAAHaY8XeZinZmx895c-K4jpxJRuM4BKe76JaNI5Sy4" + }, + "tests": [ + { + "tcId": 115, + "comment": "Test case for overflow in signature generation", + "flags": [ + "Ktv" + ], + "msg": "9399a6db9433d2a28d2b0c11c8794ab7d108c95b", + "sig": "176065c6d64a136a2227687d77f61f3fca3b16122c966276fd9a8b14a1a2cea4c33b3533d11101717016684e3810efbea63bb23773f7cc480174199abd734f08", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "ed3a6f9721dc9729c1f76635bcf080d7036e1c2f0228654ccbbe1e738c17b963" + }, + "publicKeyDer": "302a300506032b6570032100ed3a6f9721dc9729c1f76635bcf080d7036e1c2f0228654ccbbe1e738c17b963", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA7TpvlyHclynB92Y1vPCA1wNuHC8CKGVMy74ec4wXuWM=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "7TpvlyHclynB92Y1vPCA1wNuHC8CKGVMy74ec4wXuWM" + }, + "tests": [ + { + "tcId": 116, + "comment": "Test case for overflow in signature generation", + "flags": [ + "Ktv" + ], + "msg": "7af783afbbd44c1833ab7237ecaf63b94ffdd003", + "sig": "7ca69331eec8610d38f00e2cdbd46966cb359dcde98a257ac6f362cc00c8f4fe85c02285fe4d66e31a44cadb2bf474e1a7957609eb4fe95a71473fe6699aa70d", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "4abfb535313705a6570018440cdec1a3ae33e51f352112fa6acbd0c6bc3ea859" + }, + "publicKeyDer": "302a300506032b65700321004abfb535313705a6570018440cdec1a3ae33e51f352112fa6acbd0c6bc3ea859", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEASr+1NTE3BaZXABhEDN7Bo64z5R81IRL6asvQxrw+qFk=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Sr-1NTE3BaZXABhEDN7Bo64z5R81IRL6asvQxrw-qFk" + }, + "tests": [ + { + "tcId": 117, + "comment": "Test case for overflow in signature generation", + "flags": [ + "Ktv" + ], + "msg": "321b5f663c19e30ee7bbb85e48ecf44db9d3f512", + "sig": "f296715e855d8aecccba782b670163dedc4458fe4eb509a856bcac450920fd2e95a3a3eb212d2d9ccaf948c39ae46a2548af125f8e2ad9b77bd18f92d59f9200", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "4f2162e6bf03a712db0efa418b7e7006e23871d9d7ec555a313885c4afd96385" + }, + "publicKeyDer": "302a300506032b65700321004f2162e6bf03a712db0efa418b7e7006e23871d9d7ec555a313885c4afd96385", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEATyFi5r8DpxLbDvpBi35wBuI4cdnX7FVaMTiFxK/ZY4U=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "TyFi5r8DpxLbDvpBi35wBuI4cdnX7FVaMTiFxK_ZY4U" + }, + "tests": [ + { + "tcId": 118, + "comment": "Test case for overflow in signature generation", + "flags": [ + "Ktv" + ], + "msg": "c48890e92aeeb3af04858a8dc1d34f16a4347b91", + "sig": "367d07253a9d5a77d054b9c1a82d3c0a448a51905343320b3559325ef41839608aa45564978da1b2968c556cfb23b0c98a9be83e594d5e769d69d1156e1b1506", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "4abfb535313705a6570018440cdec1a3ae33e51f352112fa6acbd0c6bc3ea859" + }, + "publicKeyDer": "302a300506032b65700321004abfb535313705a6570018440cdec1a3ae33e51f352112fa6acbd0c6bc3ea859", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEASr+1NTE3BaZXABhEDN7Bo64z5R81IRL6asvQxrw+qFk=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Sr-1NTE3BaZXABhEDN7Bo64z5R81IRL6asvQxrw-qFk" + }, + "tests": [ + { + "tcId": 119, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "321b5f663c19e30ee7bbb85e48ecf44db9d3f512", + "sig": "f296715e855d8aecccba782b670163dedc4458fe4eb509a856bcac450920fd2e95a3a3eb212d2d9ccaf948c39ae46a2548af125f8e2ad9b77bd18f92d59f9200", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "4f2162e6bf03a712db0efa418b7e7006e23871d9d7ec555a313885c4afd96385" + }, + "publicKeyDer": "302a300506032b65700321004f2162e6bf03a712db0efa418b7e7006e23871d9d7ec555a313885c4afd96385", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEATyFi5r8DpxLbDvpBi35wBuI4cdnX7FVaMTiFxK/ZY4U=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "TyFi5r8DpxLbDvpBi35wBuI4cdnX7FVaMTiFxK_ZY4U" + }, + "tests": [ + { + "tcId": 120, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "c48890e92aeeb3af04858a8dc1d34f16a4347b91", + "sig": "367d07253a9d5a77d054b9c1a82d3c0a448a51905343320b3559325ef41839608aa45564978da1b2968c556cfb23b0c98a9be83e594d5e769d69d1156e1b1506", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "0717d75ce27ea181ed5a30e6456c649b5cf453a6b4c12cd3f9fd16b31e0c25cd" + }, + "publicKeyDer": "302a300506032b65700321000717d75ce27ea181ed5a30e6456c649b5cf453a6b4c12cd3f9fd16b31e0c25cd", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEABxfXXOJ+oYHtWjDmRWxkm1z0U6a0wSzT+f0Wsx4MJc0=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "BxfXXOJ-oYHtWjDmRWxkm1z0U6a0wSzT-f0Wsx4MJc0" + }, + "tests": [ + { + "tcId": 121, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "26d5f0631f49106db58c4cfc903691134811b33c", + "sig": "9588e02bc815649d359ce710cdc69814556dd8c8bab1c468f40a49ebefb7f0de7ed49725edfd1b708fa1bad277c35d6c1b9c5ec25990997645780f9203d7dd08", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "db5b9eab7e84e5a13505865fa711c9c896c898609fc11fc9bc1e55028f9496df" + }, + "publicKeyDer": "302a300506032b6570032100db5b9eab7e84e5a13505865fa711c9c896c898609fc11fc9bc1e55028f9496df", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA21ueq36E5aE1BYZfpxHJyJbImGCfwR/JvB5VAo+Ult8=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "21ueq36E5aE1BYZfpxHJyJbImGCfwR_JvB5VAo-Ult8" + }, + "tests": [ + { + "tcId": 122, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "2a71f064af982a3a1103a75cef898732d7881981", + "sig": "2217a0be57dd0d6c0090641496bcb65e37213f02a0df50aff0368ee2808e1376504f37b37494132dfc4d4887f58b9e86eff924040db3925ee4f8e1428c4c500e", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7bac18f6d2625d3915f233434cda38a577247a7332a5170b37142a34644145e0" + }, + "publicKeyDer": "302a300506032b65700321007bac18f6d2625d3915f233434cda38a577247a7332a5170b37142a34644145e0", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAe6wY9tJiXTkV8jNDTNo4pXckenMypRcLNxQqNGRBReA=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "e6wY9tJiXTkV8jNDTNo4pXckenMypRcLNxQqNGRBReA" + }, + "tests": [ + { + "tcId": 123, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "bf26796cef4ddafcf5033c8d105057db0210b6ad", + "sig": "1fda6dd4519fdbefb515bfa39e8e5911f4a0a8aa65f40ef0c542b8b34b87f9c249dc57f320718ff457ed5915c4d0fc352affc1287724d3f3a9de1ff777a02e01", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7bac18f6d2625d3915f233434cda38a577247a7332a5170b37142a34644145e0" + }, + "publicKeyDer": "302a300506032b65700321007bac18f6d2625d3915f233434cda38a577247a7332a5170b37142a34644145e0", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAe6wY9tJiXTkV8jNDTNo4pXckenMypRcLNxQqNGRBReA=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "e6wY9tJiXTkV8jNDTNo4pXckenMypRcLNxQqNGRBReA" + }, + "tests": [ + { + "tcId": 124, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "bf26796cef4ddafcf5033c8d105057db0210b6ad", + "sig": "1fda6dd4519fdbefb515bfa39e8e5911f4a0a8aa65f40ef0c542b8b34b87f9c249dc57f320718ff457ed5915c4d0fc352affc1287724d3f3a9de1ff777a02e01", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "38ead304624abebf3e2b31e20e5629531e3fc659008887c9106f5e55adbbc62a" + }, + "publicKeyDer": "302a300506032b657003210038ead304624abebf3e2b31e20e5629531e3fc659008887c9106f5e55adbbc62a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAOOrTBGJKvr8+KzHiDlYpUx4/xlkAiIfJEG9eVa27xio=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "OOrTBGJKvr8-KzHiDlYpUx4_xlkAiIfJEG9eVa27xio" + }, + "tests": [ + { + "tcId": 125, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "ae03da6997e40cea67935020152d3a9a365cc055", + "sig": "068eafdc2f36b97f9bae7fbda88b530d16b0e35054d3a351e3a4c914b22854c711505e49682e1a447e10a69e3b04d0759c859897b64f71137acf355b63faf100", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "e9bc95049af7e4817b17c402269ba5e767b7348757ac8002fec9e08390c0a9cf" + }, + "publicKeyDer": "302a300506032b6570032100e9bc95049af7e4817b17c402269ba5e767b7348757ac8002fec9e08390c0a9cf", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA6byVBJr35IF7F8QCJpul52e3NIdXrIAC/sngg5DAqc8=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "6byVBJr35IF7F8QCJpul52e3NIdXrIAC_sngg5DAqc8" + }, + "tests": [ + { + "tcId": 126, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "489d473f7fb83c7f6823baf65482517bccd8f4ea", + "sig": "43670abc9f09a8a415e76f4a21c6a46156f066b5a37b3c1e867cf67248c7b927e8d13a763e37abf936f5f27f7a8aa290539d21f740efd26b65fd5ad27085f400", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "ee8155ca4e8fe7bc5bca5992044eab7f8c3c6a13db1176f42f46c29da5b064f4" + }, + "publicKeyDer": "302a300506032b6570032100ee8155ca4e8fe7bc5bca5992044eab7f8c3c6a13db1176f42f46c29da5b064f4", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA7oFVyk6P57xbylmSBE6rf4w8ahPbEXb0L0bCnaWwZPQ=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "7oFVyk6P57xbylmSBE6rf4w8ahPbEXb0L0bCnaWwZPQ" + }, + "tests": [ + { + "tcId": 127, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "1b704d6692d60a07ad1e1d047b65e105a80d3459", + "sig": "56388f2228893b14ce4f2a5e0cc626591061de3a57c50a5ecab7b9d5bb2caeea191560a1cf2344c75fdb4a085444aa68d727b39f498169eaa82cf64a31f59803", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "db507bfcc9576393f7157bb360532b05c5fcf2e764b690cc6698a4a30d349095" + }, + "publicKeyDer": "302a300506032b6570032100db507bfcc9576393f7157bb360532b05c5fcf2e764b690cc6698a4a30d349095", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA21B7/MlXY5P3FXuzYFMrBcX88udktpDMZpikow00kJU=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "21B7_MlXY5P3FXuzYFMrBcX88udktpDMZpikow00kJU" + }, + "tests": [ + { + "tcId": 128, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "dc87030862c4c32f56261e93a367caf458c6be27", + "sig": "553e5845fc480a577da6544e602caadaa00ae3e5aa3dce9ef332b1541b6d5f21bdf1d01e98baf80b8435f9932f89b3eb70f02da24787aac8e77279e797d0bd0b", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "994eaf03309d6ad9d95a656bc1744e2886f029023a3750b34f35086b3c7227f8" + }, + "publicKeyDer": "302a300506032b6570032100994eaf03309d6ad9d95a656bc1744e2886f029023a3750b34f35086b3c7227f8", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAmU6vAzCdatnZWmVrwXROKIbwKQI6N1CzTzUIazxyJ/g=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "mU6vAzCdatnZWmVrwXROKIbwKQI6N1CzTzUIazxyJ_g" + }, + "tests": [ + { + "tcId": 129, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "7f41ef68508343ef18813cb2fb332445ec6480cd", + "sig": "bc10f88081b7be1f2505b6e76c5c82e358cf21ec11b7df1f334fb587bada465b53d9f7b4d4fec964432ee91ead1bc32ed3c82f2167da1c834a37515df7fe130e", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "127d37e406e0d83e4b55a09e21e8f50fb88af47e4a43f018cdebffc1948757f0" + }, + "publicKeyDer": "302a300506032b6570032100127d37e406e0d83e4b55a09e21e8f50fb88af47e4a43f018cdebffc1948757f0", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAEn035Abg2D5LVaCeIej1D7iK9H5KQ/AYzev/wZSHV/A=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "En035Abg2D5LVaCeIej1D7iK9H5KQ_AYzev_wZSHV_A" + }, + "tests": [ + { + "tcId": 130, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "e1ce107971534bc46a42ac609a1a37b4ca65791d", + "sig": "00c11e76b5866b7c37528b0670188c1a0473fb93c33b72ae604a8865a7d6e094ff722e8ede3cb18389685ff3c4086c29006047466f81e71a329711e0b9294709", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "d83ba84edfb4bec49f29be31d80a64b7c0b5a502438cdb1d0dd1e0e3e55786de" + }, + "publicKeyDer": "302a300506032b6570032100d83ba84edfb4bec49f29be31d80a64b7c0b5a502438cdb1d0dd1e0e3e55786de", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA2DuoTt+0vsSfKb4x2Apkt8C1pQJDjNsdDdHg4+VXht4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "2DuoTt-0vsSfKb4x2Apkt8C1pQJDjNsdDdHg4-VXht4" + }, + "tests": [ + { + "tcId": 131, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "869a827397c585cf35acf88a8728833ab1c8c81e", + "sig": "0a6f0ac47ea136cb3ff00f7a96638e4984048999ee2da0af6e5c86bffb0e70bb97406b6ad5a4b764f7c99ebb6ec0fd434b8efe253b0423ef876c037998e8ab07", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "d3c9aa2f3d6ef217a166e8ae403ed436c37facbbe3beceb78df6eb439f8fa04a" + }, + "publicKeyDer": "302a300506032b6570032100d3c9aa2f3d6ef217a166e8ae403ed436c37facbbe3beceb78df6eb439f8fa04a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA08mqLz1u8hehZuiuQD7UNsN/rLvjvs63jfbrQ5+PoEo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "08mqLz1u8hehZuiuQD7UNsN_rLvjvs63jfbrQ5-PoEo" + }, + "tests": [ + { + "tcId": 132, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "619d8c4f2c93104be01cd574a385ceca08c33a9e", + "sig": "b7cbb942a6661e2312f79548224f3e44f5841c6e880c68340756a00ce94a914e8404858265985e6bb97ef01d2d7e5e41340309606bfc43c8c6a8f925126b3d09", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "d53280367c1c0b95ac4112218b92c6a71c51fb6312ce668de196c7d52a136155" + }, + "publicKeyDer": "302a300506032b6570032100d53280367c1c0b95ac4112218b92c6a71c51fb6312ce668de196c7d52a136155", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA1TKANnwcC5WsQRIhi5LGpxxR+2MSzmaN4ZbH1SoTYVU=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "1TKANnwcC5WsQRIhi5LGpxxR-2MSzmaN4ZbH1SoTYVU" + }, + "tests": [ + { + "tcId": 133, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "5257a0bae8326d259a6ce97420c65e6c2794afe2", + "sig": "27a4f24009e579173ff3064a6eff2a4d20224f8f85fdec982a9cf2e6a3b51537348a1d7851a3a932128a923a393ea84e6b35eb3473c32dceb9d7e9cab03a0f0d", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "94ac2336ba97a476fb4c9f2b5563e4167ca292c6e99e422350a911ae3172c315" + }, + "publicKeyDer": "302a300506032b657003210094ac2336ba97a476fb4c9f2b5563e4167ca292c6e99e422350a911ae3172c315", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAlKwjNrqXpHb7TJ8rVWPkFnyiksbpnkIjUKkRrjFywxU=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "lKwjNrqXpHb7TJ8rVWPkFnyiksbpnkIjUKkRrjFywxU" + }, + "tests": [ + { + "tcId": 134, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "5acb6afc9b368f7acac0e71f6a4831c72d628405", + "sig": "985b605fe3f449f68081197a68c714da0bfbf6ac2ab9abb0508b6384ea4999cb8d79af98e86f589409e8d2609a8f8bd7e80aaa8d92a84e7737fbe8dcef41920a", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "e1e7316d231f7f275bdf403360304da1509fdf1af1fd25ca214eaac0a289398f" + }, + "publicKeyDer": "302a300506032b6570032100e1e7316d231f7f275bdf403360304da1509fdf1af1fd25ca214eaac0a289398f", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA4ecxbSMffydb30AzYDBNoVCf3xrx/SXKIU6qwKKJOY8=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "4ecxbSMffydb30AzYDBNoVCf3xrx_SXKIU6qwKKJOY8" + }, + "tests": [ + { + "tcId": 135, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "3c87b3453277b353941591fc7eaa7dd37604b42a", + "sig": "1c8fbda3d39e2b441f06da6071c13115cb4115c7c3341704cf6513324d4cf1ef4a1dd7678a048b0dde84e48994d080befcd70854079d44b6a0b0f9fa002d130c", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "fffbeea71215efaf9888fec2cc68edb3703ff11a66fd629b53cbda5eabc18750" + }, + "publicKeyDer": "302a300506032b6570032100fffbeea71215efaf9888fec2cc68edb3703ff11a66fd629b53cbda5eabc18750", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA//vupxIV76+YiP7CzGjts3A/8Rpm/WKbU8vaXqvBh1A=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "__vupxIV76-YiP7CzGjts3A_8Rpm_WKbU8vaXqvBh1A" + }, + "tests": [ + { + "tcId": 136, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "0a68e27ef6847bfd9e398b328a0ded3679d4649d", + "sig": "59097233eb141ed948b4f3c28a9496b9a7eca77454ecfe7e46737d1449a0b76b15aacf77cf48af27a668aa4434cfa26c504d75a2bcc4feac46465446234c0508", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "19ccc0527599cb032e0b4c4d74e60f13901768a99df041c3bc1bf6c0ef271169" + }, + "publicKeyDer": "302a300506032b657003210019ccc0527599cb032e0b4c4d74e60f13901768a99df041c3bc1bf6c0ef271169", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAGczAUnWZywMuC0xNdOYPE5AXaKmd8EHDvBv2wO8nEWk=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "GczAUnWZywMuC0xNdOYPE5AXaKmd8EHDvBv2wO8nEWk" + }, + "tests": [ + { + "tcId": 137, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "4e9bef60737c7d4dd10bd52567e1473a36d3573d", + "sig": "519105608508fe2f1b6da4cc8b23e39798b1d18d25972beed0404cec722e01ba1b6a0f85e99e092cca8076b101b60d4ac5035684357f4d0daacdc642da742a06", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "0e726e27047563aa0a1a9c2e085d8d26af2acba129d0869c65031e3e6cac329a" + }, + "publicKeyDer": "302a300506032b65700321000e726e27047563aa0a1a9c2e085d8d26af2acba129d0869c65031e3e6cac329a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEADnJuJwR1Y6oKGpwuCF2NJq8qy6Ep0IacZQMePmysMpo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "DnJuJwR1Y6oKGpwuCF2NJq8qy6Ep0IacZQMePmysMpo" + }, + "tests": [ + { + "tcId": 138, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "cc82b3163efda3ba7e9240e765112caa69113694", + "sig": "d8b03ee579e73f16477527fc9dc37a72eaac0748a733772c483ba013944f01ef64fb4ec5e3a95021dc22f4ae282baff6e9b9cc8433c6b6710d82e7397d72ef04", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "e77717b54a2b5e5bce5bccb8f0c5fdb5fd7df77ac254020fc9120dc0d4df4178" + }, + "publicKeyDer": "302a300506032b6570032100e77717b54a2b5e5bce5bccb8f0c5fdb5fd7df77ac254020fc9120dc0d4df4178", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA53cXtUorXlvOW8y48MX9tf1993rCVAIPyRINwNTfQXg=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "53cXtUorXlvOW8y48MX9tf1993rCVAIPyRINwNTfQXg" + }, + "tests": [ + { + "tcId": 139, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "923a5c9e7b5635bb6c32c5a408a4a15b652450eb", + "sig": "26da61fdfd38e6d01792813f27840c8b4766b0faaed39d0ee898cb450d94a5d5f57e58b6a003d7f9b56b20561954c6edcf66492d116b8b5e91f205a3a6449d0b", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "6220972d3f7d150b36790d7d522384876d64d640cd9913186815e1629582ed36" + }, + "publicKeyDer": "302a300506032b65700321006220972d3f7d150b36790d7d522384876d64d640cd9913186815e1629582ed36", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAYiCXLT99FQs2eQ19UiOEh21k1kDNmRMYaBXhYpWC7TY=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "YiCXLT99FQs2eQ19UiOEh21k1kDNmRMYaBXhYpWC7TY" + }, + "tests": [ + { + "tcId": 140, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "6f2f0245de4587062979d0422d349f93ccdc3af2", + "sig": "4adeaff7a58c5010a5a067feea0ae504d37b0c6a76c6c153e222f13409dff2df0fab69bc5059b97d925dc1b89e9851d7c627cb82d65585f9fd976124553f8902", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7b64a28c50ec7678a90e3e1a21522e30ac9db7b5215aea2bfb33bea037eab987" + }, + "publicKeyDer": "302a300506032b65700321007b64a28c50ec7678a90e3e1a21522e30ac9db7b5215aea2bfb33bea037eab987", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAe2SijFDsdnipDj4aIVIuMKydt7UhWuor+zO+oDfquYc=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "e2SijFDsdnipDj4aIVIuMKydt7UhWuor-zO-oDfquYc" + }, + "tests": [ + { + "tcId": 141, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "6e911edb27a170b983d4dee1110554f804330f41", + "sig": "4204d620cde0c3008c0b2901f5d6b44f88f0e3cb4f4d62252bf6f3cb37c1fb150a9ccb296afe5e7c75f65b5c8edd13dc4910ffe1e1265b3707c59042cf9a5902", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "724452210a9e4c994819229bf12bf84e95768a3a97c08d8d8f5f939a4cad34c5" + }, + "publicKeyDer": "302a300506032b6570032100724452210a9e4c994819229bf12bf84e95768a3a97c08d8d8f5f939a4cad34c5", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAckRSIQqeTJlIGSKb8Sv4TpV2ijqXwI2Nj1+TmkytNMU=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "ckRSIQqeTJlIGSKb8Sv4TpV2ijqXwI2Nj1-TmkytNMU" + }, + "tests": [ + { + "tcId": 142, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "b8cf807eea809aaf739aa091f3b7a3f2fd39fb51", + "sig": "f8a69d3fd8c2ff0a9dec41e4c6b43675ce08366a35e220b1185ffc246c339e22c20ac661e866f52054015efd04f42eca2adcee6834c4df923b4a62576e4dff0e", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "bad265b294ed2f422cb6a141694086238fbfe987571aa765d8b4f3a24105aa01" + }, + "publicKeyDer": "302a300506032b6570032100bad265b294ed2f422cb6a141694086238fbfe987571aa765d8b4f3a24105aa01", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAutJlspTtL0IstqFBaUCGI4+/6YdXGqdl2LTzokEFqgE=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "utJlspTtL0IstqFBaUCGI4-_6YdXGqdl2LTzokEFqgE" + }, + "tests": [ + { + "tcId": 143, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "01a2b5f7fee813b4e9bd7fc25137648004795010", + "sig": "61792c9442bc6338ac41fd42a40bee9b02ec1836503d60ff725128c63d72808880c36e6190b7da525cbee5d12900aa043547dd14a2709ef9e49d628f37f6b70c", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "0aaee4b723db9b51ba7d22eb23eb8a76a5ac02f4fc9dd06f77bea42e1d37ec5a" + }, + "publicKeyDer": "302a300506032b65700321000aaee4b723db9b51ba7d22eb23eb8a76a5ac02f4fc9dd06f77bea42e1d37ec5a", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEACq7ktyPbm1G6fSLrI+uKdqWsAvT8ndBvd76kLh037Fo=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "Cq7ktyPbm1G6fSLrI-uKdqWsAvT8ndBvd76kLh037Fo" + }, + "tests": [ + { + "tcId": 144, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "0fbf5d47cb5d498feace8f98f1896208da38a885", + "sig": "fa3cd41e3a8c00b19eecd404a63c3cb787cd30de0dfc936966cff2117f5aff18db6bef80fcfd8856f3fb2e9c3dc47593e9471103032af918feee638a33d40505", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "812344af15a91ba83c2c91e96f1727ac0f3c4c41385b9fa84efa399ada5168be" + }, + "publicKeyDer": "302a300506032b6570032100812344af15a91ba83c2c91e96f1727ac0f3c4c41385b9fa84efa399ada5168be", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAgSNErxWpG6g8LJHpbxcnrA88TEE4W5+oTvo5mtpRaL4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "gSNErxWpG6g8LJHpbxcnrA88TEE4W5-oTvo5mtpRaL4" + }, + "tests": [ + { + "tcId": 145, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "36e67c1939750bffb3e4ba6cb85562612275e862", + "sig": "97fbbcd7a1d0eb42d2f8c42448ef35a2c2472740556b645547865330d6c57068af377fced08aaf810c08cd3c43d296f1975710312e9334c98b485f831efa4103", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "0ee5cb5597fbdf8dccc48b01485e39b33aa133b52d30d23740277267cfec3e3e" + }, + "publicKeyDer": "302a300506032b65700321000ee5cb5597fbdf8dccc48b01485e39b33aa133b52d30d23740277267cfec3e3e", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEADuXLVZf7343MxIsBSF45szqhM7UtMNI3QCdyZ8/sPj4=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "DuXLVZf7343MxIsBSF45szqhM7UtMNI3QCdyZ8_sPj4" + }, + "tests": [ + { + "tcId": 146, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "13945c894c1d3fe8562e8b20e5f0efaa26ade8e3", + "sig": "d7dbaa337ffd2a5fd8d5fd8ad5aeccc0c0f83795c2c59fe62a40b87903b1ae62ed748a8df5af4d32f9f822a65d0e498b6f40eaf369a9342a1164ee7d08b58103", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "9fba1de92b60b5b4703089763d0d6f9125e4dd7efae41f08a22882aef96892c4" + }, + "publicKeyDer": "302a300506032b65700321009fba1de92b60b5b4703089763d0d6f9125e4dd7efae41f08a22882aef96892c4", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAn7od6StgtbRwMIl2PQ1vkSXk3X765B8IoiiCrvloksQ=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "n7od6StgtbRwMIl2PQ1vkSXk3X765B8IoiiCrvloksQ" + }, + "tests": [ + { + "tcId": 147, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "4de142af4b8402f80a47fa812df84f42e283cee7", + "sig": "09a2ed303a2fa7027a1dd7c3b0d25121eeed2b644a2fbc17aa0c8aea4524071ede7e7dd7a536d5497f8165d29e4e1b63200f74bbae39fbbbccb29889c62c1f09", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "7582ab1b52e1316e5c13671f43b39ca36b28133cd0832831bcddd0b0f23398cb" + }, + "publicKeyDer": "302a300506032b65700321007582ab1b52e1316e5c13671f43b39ca36b28133cd0832831bcddd0b0f23398cb", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAdYKrG1LhMW5cE2cfQ7Oco2soEzzQgygxvN3QsPIzmMs=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "dYKrG1LhMW5cE2cfQ7Oco2soEzzQgygxvN3QsPIzmMs" + }, + "tests": [ + { + "tcId": 148, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "563357f41b8b23b1d83f19f5667177a67da20b18", + "sig": "e6884a6e6b2e60a0b5862251c001e7c79d581d777d6fc11d218d0aecd79f26a30e2ca22cc7c4674f8b72655bc4ee5cb5494ca07c05177656142ac55cc9d33e02", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "dd2d678bae222f3fb6e8278f08cc9e1a66339c926c29ac0a16f9717f5ee18cd8" + }, + "publicKeyDer": "302a300506032b6570032100dd2d678bae222f3fb6e8278f08cc9e1a66339c926c29ac0a16f9717f5ee18cd8", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA3S1ni64iLz+26CePCMyeGmYznJJsKawKFvlxf17hjNg=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "3S1ni64iLz-26CePCMyeGmYznJJsKawKFvlxf17hjNg" + }, + "tests": [ + { + "tcId": 149, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "931bbf9c877a6571cf7d4609fc3eb867edd43f51", + "sig": "6124c206d864507ea5d984b363b4cf583314db6856a45ded5e61eebff4d5e337e0b4c82b445ae2e52d549d2d961eace2ea01f81158e09a9686baa040db65ad08", + "result": "valid" + } + ] + }, + { + "type": "EddsaVerify", + "source": { + "name": "google-wycheproof", + "version": "0.9rc5" + }, + "publicKey": { + "type": "EDDSAPublicKey", + "curve": "edwards25519", + "keySize": 255, + "pk": "ccbe7cb2e4bc215cee2f885e1d22f7e0d582b2bbbd782c104e548b152d26fc69" + }, + "publicKeyDer": "302a300506032b6570032100ccbe7cb2e4bc215cee2f885e1d22f7e0d582b2bbbd782c104e548b152d26fc69", + "publicKeyPem": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEAzL58suS8IVzuL4heHSL34NWCsru9eCwQTlSLFS0m/Gk=\n-----END PUBLIC KEY-----\n", + "publicKeyJwk": { + "kty": "OKP", + "crv": "Ed25519", + "kid": "none", + "x": "zL58suS8IVzuL4heHSL34NWCsru9eCwQTlSLFS0m_Gk" + }, + "tests": [ + { + "tcId": 150, + "comment": "regression test for arithmetic error", + "flags": [ + "TinkOverflow" + ], + "msg": "44530b0b34f598767a7b875b0caee3c7b9c502d1", + "sig": "cfbd450a2c83cb8436c348822fe3ee347d4ee937b7f2ea11ed755cc52852407c9eec2c1fa30d2f9aef90e89b2cc3bcef2b1b9ca59f712110d19894a9cf6a2802", + "result": "valid" + } + ] + } + ] +} diff --git a/cryptography/test_vectors/wycheproof/regenerate.py b/cryptography/test_vectors/wycheproof/regenerate.py new file mode 100644 index 00000000000..6c1233cda16 --- /dev/null +++ b/cryptography/test_vectors/wycheproof/regenerate.py @@ -0,0 +1,185 @@ +#!/usr/bin/env python3 +"""Regenerate `cryptography/src/ed25519/wycheproof_vectors.rs` from the +vendored Project Wycheproof Ed25519 test-vector JSON. + +The regenerated Rust file is the only source of test data consumed at +`cargo test` time; this avoids adding a JSON parser to the crate's dev +dependencies. + +Usage (from the repo root): + + python3 cryptography/test_vectors/wycheproof/regenerate.py + +The script will: + + 1. Re-download `ed25519_test.json` from the pinned upstream commit + (set via `WYCHEPROOF_COMMIT` below) into the vendored location, + 2. Emit `cryptography/src/ed25519/wycheproof_vectors.rs`. + +Both files are committed to the repository. Bumping the pinned commit +is a deliberate two-step: + + 1. Update `WYCHEPROOF_COMMIT` here. + 2. Re-run this script, audit the JSON diff, and re-run + `just test -p commonware-cryptography ed25519::wycheproof` to + confirm no new ZIP215 deviations have been introduced. +""" + +import json +import pathlib +import subprocess +import sys +import urllib.request + +# Pinned upstream Wycheproof commit. Bumping this is a deliberate change +# that must be paired with a re-audit of any new ZIP215 deviations. +WYCHEPROOF_COMMIT = "6d9d6de30f02e229dfc160323722c3ddac866181" +UPSTREAM_PATH = "testvectors_v1/ed25519_test.json" +UPSTREAM_URL = ( + f"https://raw.githubusercontent.com/C2SP/wycheproof/{WYCHEPROOF_COMMIT}/{UPSTREAM_PATH}" +) +PERMALINK = ( + f"https://github.com/C2SP/wycheproof/blob/{WYCHEPROOF_COMMIT}/{UPSTREAM_PATH}" +) + +REPO_ROOT = pathlib.Path(__file__).resolve().parents[3] +JSON_PATH = REPO_ROOT / "cryptography" / "test_vectors" / "wycheproof" / "ed25519_test.json" +RS_PATH = REPO_ROOT / "cryptography" / "src" / "ed25519" / "wycheproof_vectors.rs" + + +def hex_to_bytes(hex_str: str) -> bytes: + # Wycheproof uses plain lowercase hex with even length; reject anything else + # so a malformed upstream change surfaces here instead of as a confusing + # compile failure. + return bytes.fromhex(hex_str) + + +def rust_byte_literal(data: bytes) -> str: + if not data: + return "&[]" + return "&[" + ", ".join(f"0x{b:02x}" for b in data) + "]" + + +def rust_str_literal(s: str) -> str: + # JSON strings can contain any unicode; round-trip through json.dumps so + # backslashes, quotes, and non-ASCII characters are escaped correctly. + return json.dumps(s, ensure_ascii=False) + + +def fetch_json() -> dict: + """Download the pinned vector file. Falls back to `curl` if Python's + `urllib` cannot validate TLS certificates (a common situation on macOS + with the python.org Python build, which does not use the system trust + store).""" + print(f"Fetching {UPSTREAM_URL}", file=sys.stderr) + JSON_PATH.parent.mkdir(parents=True, exist_ok=True) + try: + with urllib.request.urlopen(UPSTREAM_URL) as resp: + raw = resp.read() + except Exception as exc: + print(f" urllib failed ({exc!r}); retrying with curl", file=sys.stderr) + raw = subprocess.check_output( + ["curl", "-sSfL", UPSTREAM_URL], + ) + JSON_PATH.write_bytes(raw) + return json.loads(raw) + + +def main() -> int: + doc = fetch_json() + assert doc["algorithm"] == "EDDSA", doc["algorithm"] + + lines: list[str] = [] + lines.append("// This file is auto-generated. Do not edit by hand.") + lines.append("//") + lines.append( + "// Source: Project Wycheproof, pinned at commit" + ) + lines.append(f"// {WYCHEPROOF_COMMIT}") + lines.append(f"// File: {UPSTREAM_PATH}") + lines.append(f"// Permalink: {PERMALINK}") + lines.append("//") + lines.append("// To regenerate, run:") + lines.append("// python3 cryptography/test_vectors/wycheproof/regenerate.py") + lines.append("") + lines.append("use super::wycheproof::{Vector, Verdict};") + lines.append("") + lines.append( + "/// `numberOfTests` field reported by the upstream JSON at the pinned commit." + ) + lines.append( + "/// Used by `vector_count_matches_upstream` to guard against accidental" + ) + lines.append("/// truncation of the generated array below.") + lines.append( + f"pub(super) const NUMBER_OF_TESTS: usize = {int(doc['numberOfTests'])};" + ) + lines.append("") + lines.append("pub(super) const VECTORS: &[Vector] = &[") + + emitted = 0 + for group in doc["testGroups"]: + pk_hex = group["publicKey"]["pk"] + pk_bytes = hex_to_bytes(pk_hex) + for test in group["tests"]: + result = test["result"] + if result == "valid": + verdict = "Verdict::Valid" + elif result == "invalid": + verdict = "Verdict::Invalid" + elif result == "acceptable": + # Upstream uses "acceptable" for cases where either accept or + # reject is conformant. Wycheproof's Ed25519 vectors at the + # pinned commit contain none of these, so flag if that changes. + raise SystemExit( + f"unexpected 'acceptable' verdict at tcId={test['tcId']}; " + "extend the verdict enum if upstream now uses this class" + ) + else: + raise SystemExit(f"unknown result class: {result!r}") + + msg_bytes = hex_to_bytes(test["msg"]) + sig_bytes = hex_to_bytes(test["sig"]) + flags = test.get("flags", []) + flag_lits = ", ".join(rust_str_literal(f) for f in flags) + + lines.append(" Vector {") + lines.append(f" tc_id: {int(test['tcId'])},") + lines.append(f" comment: {rust_str_literal(test['comment'])},") + lines.append(f" public_key: {rust_byte_literal(pk_bytes)},") + lines.append(f" msg: {rust_byte_literal(msg_bytes)},") + lines.append(f" sig: {rust_byte_literal(sig_bytes)},") + lines.append(f" result: {verdict},") + lines.append(f" flags: &[{flag_lits}],") + lines.append(" },") + emitted += 1 + + lines.append("];") + lines.append("") + + if emitted != doc["numberOfTests"]: + raise SystemExit( + f"emitted {emitted} vectors but numberOfTests = {doc['numberOfTests']}" + ) + + RS_PATH.write_text("\n".join(lines)) + print(f"Wrote {RS_PATH} ({emitted} vectors)", file=sys.stderr) + + # Apply rustfmt so the generated file matches the in-repo style without + # requiring a follow-up `just fix-fmt`. + try: + subprocess.run( + ["rustfmt", "--edition", "2021", str(RS_PATH)], + check=True, + ) + except (FileNotFoundError, subprocess.CalledProcessError) as exc: + print( + f"warning: rustfmt did not run cleanly ({exc!r}); " + "run `just fix-fmt` before committing", + file=sys.stderr, + ) + return 0 + + +if __name__ == "__main__": + sys.exit(main())