commit aa2b5d69bbbaca8b8be180435d4fb2dbd048883c
parent 2d98327a55396f82e2cd04b1a79a911ac6701564
Author: mauricefisher64 <92736594+mauricefisher64@users.noreply.github.com>
Date: Wed, 20 Dec 2023 17:20:28 -0500
Restore correct 1.3 CoseSign1 headers (#359)
* Restore correct 1.3 CoseSign1 headers
* Fix formatting
Diffstat:
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/sdk/src/cose_sign.rs b/sdk/src/cose_sign.rs
@@ -18,7 +18,7 @@
use async_generic::async_generic;
use ciborium::value::Value;
use coset::{
- iana::{self},
+ iana::{self, EnumI64},
CoseSign1, CoseSign1Builder, Header, HeaderBuilder, Label, ProtectedHeader,
TaggedCborSerializable,
};
@@ -146,7 +146,7 @@ pub(crate) fn cose_sign(signer: &dyn Signer, data: &[u8], box_size: usize) -> Re
#[async_generic(async_signature(signer: &dyn AsyncSigner, data: &[u8], alg: SigningAlg))]
fn build_headers(signer: &dyn Signer, data: &[u8], alg: SigningAlg) -> Result<(Header, Header)> {
- let protected_h = match alg {
+ let mut protected_h = match alg {
SigningAlg::Ps256 => HeaderBuilder::new().algorithm(iana::Algorithm::PS256),
SigningAlg::Ps384 => HeaderBuilder::new().algorithm(iana::Algorithm::PS384),
SigningAlg::Ps512 => HeaderBuilder::new().algorithm(iana::Algorithm::PS512),
@@ -170,14 +170,11 @@ fn build_headers(signer: &dyn Signer, data: &[u8], alg: SigningAlg) -> Result<(H
}
};
- // enable this block of code when we want to switch to 1.3 headers
- /*
// add certs to protected header (spec 1.3 now requires integer 33(X5Chain) in favor of string "x5chain" going forward)
protected_h = protected_h.value(
iana::HeaderParameter::X5Chain.to_i64(),
sc_der_array_or_bytes.clone(),
);
- */
let protected_header = protected_h.build();
let ph2 = ProtectedHeader {
@@ -201,9 +198,6 @@ fn build_headers(signer: &dyn Signer, data: &[u8], alg: SigningAlg) -> Result<(H
HeaderBuilder::new()
};
- // generate old Cose header todo: remove this line when protected headers are enabled
- unprotected_h = unprotected_h.text_value("x5chain".to_string(), sc_der_array_or_bytes);
-
// set the ocsp responder response if available
if let Some(ocsp) = ocsp_val {
let mut ocsp_vec: Vec<Value> = Vec::new();