Expand description
Module to encode/decode cose-keys/cose-keySets.
§cose-keySet example
use cose::keys;
use cose::algs;
use hex;
fn main() {
let mut key = keys::CoseKey::new();
key.kty(keys::EC2);
key.alg(algs::ES256);
key.crv(keys::P_256);
key.d(hex::decode("57c92077664146e876760c9520d054aa93c3afb04e306705db6090308507b4d3").unwrap());
key.key_ops(vec![keys::KEY_OPS_SIGN]);
key.encode().unwrap();
let mut decode_key = keys::CoseKey::new();
decode_key.bytes = key.bytes;
decode_key.decode().unwrap();
assert_eq!(decode_key.d, key.d);
assert_eq!(decode_key.kty, key.kty);
assert_eq!(decode_key.crv, key.crv);
assert_eq!(decode_key.alg, key.alg);
let mut key_set = keys::CoseKeySet::new();
key_set.add_key(decode_key);
key_set.encode();
let mut decode_key_set = keys::CoseKeySet::new();
decode_key_set.bytes = key_set.bytes;
decode_key_set.decode();
assert_eq!(decode_key_set.cose_keys[0].d, key.d);
assert_eq!(decode_key_set.cose_keys[0].kty, key.kty);
assert_eq!(decode_key_set.cose_keys[0].crv, key.crv);
assert_eq!(decode_key_set.cose_keys[0].alg, key.alg);
}
Structs§
- CoseKey
- cose-key structure.
- Cose
KeySet - cose-keySet structure.