@@ -320,12 +320,12 @@ impl From<CoseSign1> for Signature {
320
320
321
321
#[ allow( unused) ]
322
322
impl Signature {
323
- fn from_bytes ( bytes : & [ u8 ] ) -> Result < Self > {
323
+ fn from_cose ( bytes : & [ u8 ] ) -> Result < Self > {
324
324
let cose_sign1 = CoseSign1 :: from_slice ( bytes) . map_err ( |_| CryptoError :: InvalidSignature ) ?;
325
325
Ok ( Signature ( cose_sign1) )
326
326
}
327
327
328
- fn to_bytes ( & self ) -> Result < Vec < u8 > > {
328
+ fn to_cose ( & self ) -> Result < Vec < u8 > > {
329
329
self . 0
330
330
. clone ( )
331
331
. to_vec ( )
@@ -360,11 +360,32 @@ impl Signature {
360
360
mod tests {
361
361
use super :: * ;
362
362
363
+ const SIGNING_KEY : & [ u8 ] = & [ 167 , 1 , 1 , 2 , 80 , 222 , 105 , 244 , 28 , 22 , 106 , 70 , 109 , 171 , 83 , 154 , 97 , 23 , 20 , 115 , 137 , 3 , 39 , 4 , 130 , 1 , 2 , 33 , 88 , 32 , 92 , 186 , 140 , 91 , 228 , 10 , 169 , 163 , 132 , 55 , 210 , 79 , 96 , 186 , 198 , 251 , 255 , 79 , 157 , 58 , 28 , 182 , 213 , 118 , 51 , 15 , 60 , 110 , 161 , 114 , 222 , 168 , 35 , 88 , 32 , 59 , 136 , 203 , 0 , 108 , 23 , 82 , 84 , 206 , 163 , 86 , 62 , 187 , 196 , 156 , 156 , 150 , 80 , 101 , 129 , 247 , 112 , 117 , 10 , 34 , 54 , 254 , 181 , 239 , 214 , 195 , 78 , 32 , 6 ] ;
364
+ const VERIFYING_KEY : & [ u8 ] = & [ 166 , 1 , 1 , 2 , 80 , 222 , 105 , 244 , 28 , 22 , 106 , 70 , 109 , 171 , 83 , 154 , 97 , 23 , 20 , 115 , 137 , 3 , 39 , 4 , 129 , 2 , 32 , 6 , 33 , 88 , 32 , 92 , 186 , 140 , 91 , 228 , 10 , 169 , 163 , 132 , 55 , 210 , 79 , 96 , 186 , 198 , 251 , 255 , 79 , 157 , 58 , 28 , 182 , 213 , 118 , 51 , 15 , 60 , 110 , 161 , 114 , 222 , 168 ] ;
365
+ /// Uses the ´SigningNamespace::EncryptionMetadata´ namespace, "Test message" as data
366
+ const SIGNATURE : & [ u8 ] = & [ 132 , 88 , 27 , 163 , 1 , 39 , 4 , 80 , 222 , 105 , 244 , 28 , 22 , 106 , 70 , 109 , 171 , 83 , 154 , 97 , 23 , 20 , 115 , 137 , 58 , 0 , 1 , 56 , 127 , 1 , 160 , 246 , 88 , 64 , 143 , 218 , 162 , 76 , 208 , 117 , 94 , 215 , 224 , 98 , 89 , 193 , 194 , 226 , 144 , 214 , 91 , 130 , 129 , 130 , 77 , 36 , 79 , 196 , 45 , 105 , 120 , 151 , 136 , 57 , 230 , 27 , 37 , 142 , 55 , 191 , 23 , 200 , 237 , 215 , 252 , 42 , 182 , 140 , 201 , 173 , 199 , 214 , 97 , 105 , 107 , 101 , 140 , 182 , 105 , 9 , 206 , 106 , 210 , 29 , 203 , 174 , 178 , 12 ] ;
367
+
368
+ #[ test]
369
+ fn test_using_test_vectors ( ) {
370
+ let signing_key = SigningKey :: from_cose ( SIGNING_KEY ) . unwrap ( ) ;
371
+ let verifying_key = VerifyingKey :: from_cose ( VERIFYING_KEY ) . unwrap ( ) ;
372
+ let signature = Signature :: from_cose ( SIGNATURE ) . unwrap ( ) ;
373
+
374
+ let data = b"Test message" ;
375
+ let namespace = SigningNamespace :: EncryptionMetadata ;
376
+
377
+ assert_eq ! ( signing_key. to_cose( ) . unwrap( ) , SIGNING_KEY ) ;
378
+ assert_eq ! ( verifying_key. to_cose( ) . unwrap( ) , VERIFYING_KEY ) ;
379
+ assert_eq ! ( signature. to_cose( ) . unwrap( ) , SIGNATURE ) ;
380
+
381
+ assert ! ( verifying_key. verify( & namespace, & signature, data) ) ;
382
+ }
383
+
363
384
#[ test]
364
385
fn test_sign_roundtrip ( ) {
365
386
let signing_key = SigningKey :: make_ed25519 ( ) . unwrap ( ) ;
366
387
let verifying_key = signing_key. to_verifying_key ( ) ;
367
- let data = b"Hello, world! " ;
388
+ let data = b"Test message " ;
368
389
let namespace = SigningNamespace :: EncryptionMetadata ;
369
390
370
391
let signature = signing_key. sign ( & namespace, data) ;
@@ -375,7 +396,7 @@ mod tests {
375
396
fn test_changed_signature_fails ( ) {
376
397
let signing_key = SigningKey :: make_ed25519 ( ) . unwrap ( ) ;
377
398
let verifying_key = signing_key. to_verifying_key ( ) ;
378
- let data = b"Hello, world! " ;
399
+ let data = b"Test message " ;
379
400
let namespace = SigningNamespace :: EncryptionMetadata ;
380
401
381
402
let signature = signing_key. sign ( & namespace, data) ;
@@ -386,7 +407,7 @@ mod tests {
386
407
fn test_changed_namespace_fails ( ) {
387
408
let signing_key = SigningKey :: make_ed25519 ( ) . unwrap ( ) ;
388
409
let verifying_key = signing_key. to_verifying_key ( ) ;
389
- let data = b"Hello, world! " ;
410
+ let data = b"Test message " ;
390
411
let namespace = SigningNamespace :: EncryptionMetadata ;
391
412
let other_namespace = SigningNamespace :: Test ;
392
413
0 commit comments