diff options
author | Igor Matuszewski <igor@sequoia-pgp.org> | 2020-10-06 11:59:14 +0200 |
---|---|---|
committer | Igor Matuszewski <igor@sequoia-pgp.org> | 2020-10-06 11:59:38 +0200 |
commit | 9b399d5d251999398dfbc40847696191dfccce96 (patch) | |
tree | 062080241f892acbeb0e105cdcf63dfd8639ade4 /openpgp | |
parent | 9ecaed2ea9153e21bad5346cb074e6b9aa9d1b3c (diff) |
openpgp: Create Protected first before zero-padding for CNG
Diffstat (limited to 'openpgp')
-rw-r--r-- | openpgp/src/crypto/backend/cng/ecdh.rs | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/openpgp/src/crypto/backend/cng/ecdh.rs b/openpgp/src/crypto/backend/cng/ecdh.rs index ffcfc30d..a9118a87 100644 --- a/openpgp/src/crypto/backend/cng/ecdh.rs +++ b/openpgp/src/crypto/backend/cng/ecdh.rs @@ -285,9 +285,10 @@ enum PaddedSecret<'a> { fn pad_secret_to(value: &[u8], n: usize) -> PaddedSecret<'_> { let missing = n.saturating_sub(value.len()); if missing > 0 { - let mut vec = vec![0u8; missing + value.len()]; - vec[missing..].copy_from_slice(value); - PaddedSecret::Own(Protected::from(vec)) + let mut secret = Protected::from(vec![0u8; missing + value.len()]); + secret[missing..].copy_from_slice(value); + + PaddedSecret::Own(secret) } else { PaddedSecret::Ref(value) } |