diff options
author | lloyd <lloyd@randombit.net> | 2010-09-13 12:28:27 +0000 |
---|---|---|
committer | lloyd <lloyd@randombit.net> | 2010-09-13 12:28:27 +0000 |
commit | 27d79c87365105d6128afe9eaf8a82383976ed44 (patch) | |
tree | 9a4f0e1d5ae7ecd5c058c0293d9b546191990cdb /src/cert/cvc | |
parent | 9acfc3a50b31044e48d8dee5fc8030ad7f4518d4 (diff) |
Anywhere where we use MemoryRegion::begin to get access to the raw pointer
representation (rather than in an interator context), instead use &buf[0],
which works for both MemoryRegion and std::vector
Diffstat (limited to 'src/cert/cvc')
-rw-r--r-- | src/cert/cvc/ecdsa_sig.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/src/cert/cvc/ecdsa_sig.cpp b/src/cert/cvc/ecdsa_sig.cpp index e003bb369..6a44f6803 100644 --- a/src/cert/cvc/ecdsa_sig.cpp +++ b/src/cert/cvc/ecdsa_sig.cpp @@ -47,13 +47,11 @@ ECDSA_Signature decode_concatenation(const MemoryRegion<byte>& concat) if(concat.size() % 2 != 0) throw Invalid_Argument("Erroneous length of signature"); - u32bit rs_len = concat.size()/2; - SecureVector<byte> sv_r; - SecureVector<byte> sv_s; - sv_r.set(concat.begin(), rs_len); - sv_s.set(&concat[rs_len], rs_len); - BigInt r = BigInt::decode(sv_r, sv_r.size()); - BigInt s = BigInt::decode(sv_s, sv_s.size()); + const u32bit rs_len = concat.size() / 2; + + BigInt r = BigInt::decode(&concat[0], rs_len); + BigInt s = BigInt::decode(&concat[rs_len], rs_len); + return ECDSA_Signature(r, s); } |