More crypto fixes
This commit is contained in:
parent
2f2e332c75
commit
a539f4621e
2 changed files with 13 additions and 3 deletions
|
@ -69,7 +69,7 @@ p256 = { version = "0.13.0", default-features = false, features = ["arithmetic",
|
|||
elliptic-curve = { version = "0.13.2", optional = true }
|
||||
crypto-bigint = { version = "0.4", default-features = false, optional = true }
|
||||
rand_core = { version = "0.6", default-features = false, optional = true }
|
||||
x509-cert = { version = "0.2.0", default-features = false, features = ["pem", "std"], optional = true } # TODO: requires `alloc`
|
||||
x509-cert = { version = "0.2.0", default-features = false, features = ["pem"], optional = true } # TODO: requires `alloc`
|
||||
|
||||
# to compute the check digit
|
||||
verhoeff = "1"
|
||||
|
|
|
@ -34,7 +34,7 @@ use p256::{
|
|||
use sha2::Digest;
|
||||
use x509_cert::{
|
||||
attr::AttributeType,
|
||||
der::{asn1::BitString, Any, Encode},
|
||||
der::{asn1::BitString, Any, Encode, Writer},
|
||||
name::RdnSequence,
|
||||
request::CertReq,
|
||||
spki::{AlgorithmIdentifier, SubjectPublicKeyInfoOwned},
|
||||
|
@ -205,7 +205,7 @@ impl KeyPair {
|
|||
attributes: Default::default(),
|
||||
};
|
||||
let mut message = vec![];
|
||||
info.encode(&mut message).unwrap();
|
||||
info.encode(&mut VecWriter(&mut message)).unwrap();
|
||||
|
||||
// Can't use self.sign_msg as the signature has to be in DER format
|
||||
let private_key = self.private_key()?;
|
||||
|
@ -375,3 +375,13 @@ impl<'a> ccm::aead::Buffer for SliceBuffer<'a> {
|
|||
self.len = len;
|
||||
}
|
||||
}
|
||||
|
||||
struct VecWriter<'a>(&'a mut alloc::vec::Vec<u8>);
|
||||
|
||||
impl<'a> Writer for VecWriter<'a> {
|
||||
fn write(&mut self, slice: &[u8]) -> x509_cert::der::Result<()> {
|
||||
self.0.extend_from_slice(slice);
|
||||
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue