aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlloyd <[email protected]>2010-03-04 04:12:01 +0000
committerlloyd <[email protected]>2010-03-04 04:12:01 +0000
commit75f888fc3776519d41ac242a2559e4c7e78f86a0 (patch)
treea2e9ac31e2fb5bfd81f7832b9c848e74af32fc4e
parent280ed6b255770be9608acbf3afa3e14f5824778a (diff)
Changes to CVC to deal with the fact that you can't create an uninitialized
ECDSA_PublicKey object anymore.
-rw-r--r--src/cert/cvc/cvc_cert.cpp5
-rw-r--r--src/cert/cvc/cvc_cert.h4
-rw-r--r--src/cert/cvc/cvc_gen_cert.h9
3 files changed, 10 insertions, 8 deletions
diff --git a/src/cert/cvc/cvc_cert.cpp b/src/cert/cvc/cvc_cert.cpp
index a31981ef5..9cc2bb7e5 100644
--- a/src/cert/cvc/cvc_cert.cpp
+++ b/src/cert/cvc/cvc_cert.cpp
@@ -88,10 +88,11 @@ bool EAC1_1_CVC::operator==(EAC1_1_CVC const& rhs) const
&& get_concat_sig() == rhs.get_concat_sig());
}
-ECDSA_PublicKey decode_eac1_1_key(const MemoryRegion<byte>& enc_key,
- AlgorithmIdentifier& sig_algo)
+ECDSA_PublicKey* decode_eac1_1_key(const MemoryRegion<byte>&,
+ AlgorithmIdentifier&)
{
throw Internal_Error("decode_eac1_1_key: Unimplemented");
+ return 0;
}
EAC1_1_CVC make_cvc_cert(PK_Signer& signer,
diff --git a/src/cert/cvc/cvc_cert.h b/src/cert/cvc/cvc_cert.h
index 6e2966a6f..12bc41a9c 100644
--- a/src/cert/cvc/cvc_cert.h
+++ b/src/cert/cvc/cvc_cert.h
@@ -106,8 +106,8 @@ EAC1_1_CVC BOTAN_DLL make_cvc_cert(PK_Signer& signer,
/**
* Decode an EAC encoding ECDSA key
*/
-ECDSA_PublicKey BOTAN_DLL decode_eac1_1_key(const MemoryRegion<byte>& enc_key,
- AlgorithmIdentifier& sig_algo);
+BOTAN_DLL ECDSA_PublicKey* decode_eac1_1_key(const MemoryRegion<byte>& enc_key,
+ AlgorithmIdentifier& sig_algo);
}
diff --git a/src/cert/cvc/cvc_gen_cert.h b/src/cert/cvc/cvc_gen_cert.h
index 48cc73d86..4ad8cfaac 100644
--- a/src/cert/cvc/cvc_gen_cert.h
+++ b/src/cert/cvc/cvc_gen_cert.h
@@ -78,10 +78,10 @@ class EAC1_1_gen_CVC : public EAC1_1_obj<Derived> // CRTP continuation from EAC1
RandomNumberGenerator& rng);
virtual ~EAC1_1_gen_CVC<Derived>()
- {}
+ { delete m_pk; }
protected:
- ECDSA_PublicKey m_pk; // public key
+ ECDSA_PublicKey* m_pk;
ASN1_Chr m_chr;
bool self_signed;
@@ -117,9 +117,10 @@ MemoryVector<byte> EAC1_1_gen_CVC<Derived>::make_signed(
.get_contents();
}
-template<typename Derived> std::auto_ptr<Public_Key> EAC1_1_gen_CVC<Derived>::subject_public_key() const
+template<typename Derived>
+std::auto_ptr<Public_Key> EAC1_1_gen_CVC<Derived>::subject_public_key() const
{
- return std::auto_ptr<Public_Key>(new ECDSA_PublicKey(m_pk));
+ return std::auto_ptr<Public_Key>(new ECDSA_PublicKey(*m_pk));
}
template<typename Derived> SecureVector<byte> EAC1_1_gen_CVC<Derived>::build_cert_body(MemoryRegion<byte> const& tbs)