summaryrefslogtreecommitdiffstats
path: root/openpgp
diff options
context:
space:
mode:
authorIgor Matuszewski <igor@sequoia-pgp.org>2020-10-06 11:59:14 +0200
committerIgor Matuszewski <igor@sequoia-pgp.org>2020-10-06 11:59:38 +0200
commit9b399d5d251999398dfbc40847696191dfccce96 (patch)
tree062080241f892acbeb0e105cdcf63dfd8639ade4 /openpgp
parent9ecaed2ea9153e21bad5346cb074e6b9aa9d1b3c (diff)
openpgp: Create Protected first before zero-padding for CNG
Diffstat (limited to 'openpgp')
-rw-r--r--openpgp/src/crypto/backend/cng/ecdh.rs7
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)
}