diff options
author | lloyd <[email protected]> | 2010-03-02 03:34:51 +0000 |
---|---|---|
committer | lloyd <[email protected]> | 2010-03-02 03:34:51 +0000 |
commit | 70d72cc1a843bb5e60c5f6ab27f2f3226f1333a3 (patch) | |
tree | ba565fbf454b9d6855de2c2f991087161cab5ffe /src | |
parent | 19e77947ee00b4db6b732ef3dabfdbb9ee2adfd6 (diff) |
Rename ECKAEG to ECDH. As far as I can tell they are the same algorithm,
I'm not sure where the old name came from though as literally the only
hits for it on Google are botan-related.
Diffstat (limited to 'src')
-rw-r--r-- | src/pubkey/ecdh/ecdh.cpp (renamed from src/pubkey/eckaeg/eckaeg.cpp) | 26 | ||||
-rw-r--r-- | src/pubkey/ecdh/ecdh.h (renamed from src/pubkey/eckaeg/eckaeg.h) | 38 | ||||
-rw-r--r-- | src/pubkey/ecdh/info.txt (renamed from src/pubkey/eckaeg/info.txt) | 2 |
3 files changed, 35 insertions, 31 deletions
diff --git a/src/pubkey/eckaeg/eckaeg.cpp b/src/pubkey/ecdh/ecdh.cpp index 95b5afdbb..2ddc371b2 100644 --- a/src/pubkey/eckaeg/eckaeg.cpp +++ b/src/pubkey/ecdh/ecdh.cpp @@ -1,5 +1,5 @@ /* -* ECKAEG implemenation +* ECDH implemenation * (C) 2007 Manuel Hartl, FlexSecure GmbH * 2007 Falko Strenzke, FlexSecure GmbH * 2008-2010 Jack Lloyd @@ -7,22 +7,24 @@ * Distributed under the terms of the Botan license */ -#include <botan/eckaeg.h> +#include <botan/ecdh.h> + +#include <iostream> namespace Botan { -ECKAEG_PublicKey::ECKAEG_PublicKey(const EC_Domain_Params& dom_par, - const PointGFp& pub_point) +ECDH_PublicKey::ECDH_PublicKey(const EC_Domain_Params& dom_par, + const PointGFp& pub_point) { domain_params = dom_par; public_key = pub_point; if(domain().get_curve() != public_point().get_curve()) - throw Invalid_Argument("ECKAEG_PublicKey: curve mismatch in constructor"); + throw Invalid_Argument("ECDH_PublicKey: curve mismatch in constructor"); } -ECKAEG_PrivateKey::ECKAEG_PrivateKey(RandomNumberGenerator& rng, - const EC_Domain_Params& dom_pars) +ECDH_PrivateKey::ECDH_PrivateKey(RandomNumberGenerator& rng, + const EC_Domain_Params& dom_pars) { domain_params = dom_pars; generate_private_key(rng); @@ -31,8 +33,8 @@ ECKAEG_PrivateKey::ECKAEG_PrivateKey(RandomNumberGenerator& rng, /** * Derive a key */ -SecureVector<byte> ECKAEG_PrivateKey::derive_key(const byte key[], - u32bit key_len) const +SecureVector<byte> ECDH_PrivateKey::derive_key(const byte key[], + u32bit key_len) const { MemoryVector<byte> key_x(key, key_len); // FIXME: nasty/slow PointGFp point = OS2ECP(key_x, public_point().get_curve()); @@ -43,7 +45,7 @@ SecureVector<byte> ECKAEG_PrivateKey::derive_key(const byte key[], /** * Derive a key */ -SecureVector<byte> ECKAEG_PrivateKey::derive_key(const ECKAEG_PublicKey& key) const +SecureVector<byte> ECDH_PrivateKey::derive_key(const ECDH_PublicKey& key) const { return derive_key(key.public_point()); } @@ -51,7 +53,7 @@ SecureVector<byte> ECKAEG_PrivateKey::derive_key(const ECKAEG_PublicKey& key) co /** * Derive a key */ -SecureVector<byte> ECKAEG_PrivateKey::derive_key(const PointGFp& point) const +SecureVector<byte> ECDH_PrivateKey::derive_key(const PointGFp& point) const { const BigInt& cofactor = domain().get_cofactor(); const BigInt& n = domain().get_order(); @@ -61,6 +63,8 @@ SecureVector<byte> ECKAEG_PrivateKey::derive_key(const PointGFp& point) const PointGFp S = (cofactor * point) * (private_value() * l); S.check_invariants(); + //PointGFp S = point * private_value(); + return BigInt::encode_1363(S.get_affine_x(), point.get_curve().get_p().bytes()); } diff --git a/src/pubkey/eckaeg/eckaeg.h b/src/pubkey/ecdh/ecdh.h index 6bc4340ac..632083dcc 100644 --- a/src/pubkey/eckaeg/eckaeg.h +++ b/src/pubkey/ecdh/ecdh.h @@ -1,5 +1,5 @@ /* -* ECKAEG +* ECDH * (C) 2007 Falko Strenzke, FlexSecure GmbH * Manuel Hartl, FlexSecure GmbH * (C) 2008-2010 Jack Lloyd @@ -7,17 +7,17 @@ * Distributed under the terms of the Botan license */ -#ifndef BOTAN_ECKAEG_KEY_H__ -#define BOTAN_ECKAEG_KEY_H__ +#ifndef BOTAN_ECDH_KEY_H__ +#define BOTAN_ECDH_KEY_H__ #include <botan/ecc_key.h> namespace Botan { /** -* This class represents ECKAEG Public Keys. +* This class represents ECDH Public Keys. */ -class BOTAN_DLL ECKAEG_PublicKey : public virtual EC_PublicKey +class BOTAN_DLL ECDH_PublicKey : public virtual EC_PublicKey { public: @@ -25,21 +25,21 @@ class BOTAN_DLL ECKAEG_PublicKey : public virtual EC_PublicKey * Get this keys algorithm name. * @result this keys algorithm name */ - std::string algo_name() const { return "ECKAEG"; } + std::string algo_name() const { return "ECDH"; } /** * Default constructor. Use this one if you want to later fill * this object with data from an encoded key. */ - ECKAEG_PublicKey() {} + ECDH_PublicKey() {} /** * Construct a public key from a given public point. * @param dom_par the domain parameters associated with this key * @param public_point the public point defining this key */ - ECKAEG_PublicKey(const EC_Domain_Params& dom_par, - const PointGFp& public_point); + ECDH_PublicKey(const EC_Domain_Params& dom_par, + const PointGFp& public_point); /** * Get the maximum number of bits allowed to be fed to this key. @@ -51,11 +51,11 @@ class BOTAN_DLL ECKAEG_PublicKey : public virtual EC_PublicKey }; /** -* This class represents ECKAEG Private Keys. +* This class represents ECDH Private Keys. */ -class BOTAN_DLL ECKAEG_PrivateKey : public ECKAEG_PublicKey, - public EC_PrivateKey, - public PK_Key_Agreement_Key +class BOTAN_DLL ECDH_PrivateKey : public ECDH_PublicKey, + public EC_PrivateKey, + public PK_Key_Agreement_Key { public: @@ -63,14 +63,14 @@ class BOTAN_DLL ECKAEG_PrivateKey : public ECKAEG_PublicKey, * Generate a new private key * @param the domain parameters to used for this key */ - ECKAEG_PrivateKey(RandomNumberGenerator& rng, - const EC_Domain_Params& dom_pars); + ECDH_PrivateKey(RandomNumberGenerator& rng, + const EC_Domain_Params& dom_pars); /** - * Default constructor. Use this one if you want to later fill this object with data - * from an encoded key. + * Default constructor. Use this one if you want to later fill + * this object with data from an encoded key. */ - ECKAEG_PrivateKey() {} + ECDH_PrivateKey() {} MemoryVector<byte> public_value() const { return EC2OSP(public_point(), PointGFp::UNCOMPRESSED); } @@ -86,7 +86,7 @@ class BOTAN_DLL ECKAEG_PrivateKey : public ECKAEG_PublicKey, * Derive a shared key with the other parties public key. * @param other the other partys public key */ - SecureVector<byte> derive_key(const ECKAEG_PublicKey& other) const; + SecureVector<byte> derive_key(const ECDH_PublicKey& other) const; /** * Derive a shared key with the other parties public key. diff --git a/src/pubkey/eckaeg/info.txt b/src/pubkey/ecdh/info.txt index cac352a2a..12826c81b 100644 --- a/src/pubkey/eckaeg/info.txt +++ b/src/pubkey/ecdh/info.txt @@ -1,4 +1,4 @@ -define ECKAEG +define ECDH <requires> alloc |