in src/sign.rs [924:954]
fn cose_sign1_ec256_text_with_extra_protected() {
let (ec_private, ec_public) = generate_ec256_test_key();
let mut protected = HeaderMap::new();
protected.insert(
CborValue::Integer(1),
(SignatureAlgorithm::ES256 as i8).into(),
);
protected.insert(CborValue::Integer(15), CborValue::Bytes(b"12".to_vec()));
let mut unprotected = HeaderMap::new();
unprotected.insert(CborValue::Integer(4), CborValue::Bytes(b"11".to_vec()));
let cose_doc1 =
CoseSign1::new_with_protected(TEXT, &protected, &unprotected, &ec_private).unwrap();
let cose_doc2 = CoseSign1::from_bytes(&cose_doc1.as_bytes(false).unwrap()).unwrap();
let (protected, payload) = cose_doc2
.get_protected_and_payload(Some(&ec_public))
.unwrap();
assert_eq!(
protected.get(&CborValue::Integer(1)),
Some(&CborValue::Integer(-7)),
);
assert_eq!(
protected.get(&CborValue::Integer(15)),
Some(&CborValue::Bytes(b"12".to_vec())),
);
assert_eq!(payload, TEXT,);
}