aboutsummaryrefslogtreecommitdiffstats
path: root/src/pubkey/eckaeg
diff options
context:
space:
mode:
authorlloyd <[email protected]>2010-03-02 03:34:51 +0000
committerlloyd <[email protected]>2010-03-02 03:34:51 +0000
commit70d72cc1a843bb5e60c5f6ab27f2f3226f1333a3 (patch)
treeba565fbf454b9d6855de2c2f991087161cab5ffe /src/pubkey/eckaeg
parent19e77947ee00b4db6b732ef3dabfdbb9ee2adfd6 (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/pubkey/eckaeg')
-rw-r--r--src/pubkey/eckaeg/eckaeg.cpp68
-rw-r--r--src/pubkey/eckaeg/eckaeg.h100
-rw-r--r--src/pubkey/eckaeg/info.txt10
3 files changed, 0 insertions, 178 deletions
diff --git a/src/pubkey/eckaeg/eckaeg.cpp b/src/pubkey/eckaeg/eckaeg.cpp
deleted file mode 100644
index 95b5afdbb..000000000
--- a/src/pubkey/eckaeg/eckaeg.cpp
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
-* ECKAEG implemenation
-* (C) 2007 Manuel Hartl, FlexSecure GmbH
-* 2007 Falko Strenzke, FlexSecure GmbH
-* 2008-2010 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/eckaeg.h>
-
-namespace Botan {
-
-ECKAEG_PublicKey::ECKAEG_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");
- }
-
-ECKAEG_PrivateKey::ECKAEG_PrivateKey(RandomNumberGenerator& rng,
- const EC_Domain_Params& dom_pars)
- {
- domain_params = dom_pars;
- generate_private_key(rng);
- }
-
-/**
-* Derive a key
-*/
-SecureVector<byte> ECKAEG_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());
-
- return derive_key(point);
- }
-
-/**
-* Derive a key
-*/
-SecureVector<byte> ECKAEG_PrivateKey::derive_key(const ECKAEG_PublicKey& key) const
- {
- return derive_key(key.public_point());
- }
-
-/**
-* Derive a key
-*/
-SecureVector<byte> ECKAEG_PrivateKey::derive_key(const PointGFp& point) const
- {
- const BigInt& cofactor = domain().get_cofactor();
- const BigInt& n = domain().get_order();
-
- BigInt l = inverse_mod(cofactor, n); // can precompute this
-
- PointGFp S = (cofactor * point) * (private_value() * l);
- S.check_invariants();
-
- 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/eckaeg/eckaeg.h
deleted file mode 100644
index 6bc4340ac..000000000
--- a/src/pubkey/eckaeg/eckaeg.h
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
-* ECKAEG
-* (C) 2007 Falko Strenzke, FlexSecure GmbH
-* Manuel Hartl, FlexSecure GmbH
-* (C) 2008-2010 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#ifndef BOTAN_ECKAEG_KEY_H__
-#define BOTAN_ECKAEG_KEY_H__
-
-#include <botan/ecc_key.h>
-
-namespace Botan {
-
-/**
-* This class represents ECKAEG Public Keys.
-*/
-class BOTAN_DLL ECKAEG_PublicKey : public virtual EC_PublicKey
- {
- public:
-
- /**
- * Get this keys algorithm name.
- * @result this keys algorithm name
- */
- std::string algo_name() const { return "ECKAEG"; }
-
- /**
- * Default constructor. Use this one if you want to later fill
- * this object with data from an encoded key.
- */
- ECKAEG_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);
-
- /**
- * Get the maximum number of bits allowed to be fed to this key.
- * This is the bitlength of the order of the base point.
-
- * @result the maximum number of input bits
- */
- u32bit max_input_bits() const { return domain().get_order().bits(); }
- };
-
-/**
-* This class represents ECKAEG Private Keys.
-*/
-class BOTAN_DLL ECKAEG_PrivateKey : public ECKAEG_PublicKey,
- public EC_PrivateKey,
- public PK_Key_Agreement_Key
- {
- public:
-
- /**
- * Generate a new private key
- * @param the domain parameters to used for this key
- */
- ECKAEG_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.
- */
- ECKAEG_PrivateKey() {}
-
- MemoryVector<byte> public_value() const
- { return EC2OSP(public_point(), PointGFp::UNCOMPRESSED); }
-
- /**
- * Derive a shared key with the other parties public key.
- * @param key the other partys public key
- * @param key_len the other partys public key
- */
- SecureVector<byte> derive_key(const byte key[], u32bit key_len) const;
-
- /**
- * 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;
-
- /**
- * Derive a shared key with the other parties public key.
- * @param point the public point of the other parties key
- */
- SecureVector<byte> derive_key(const PointGFp& point) const;
- };
-
-}
-
-#endif
diff --git a/src/pubkey/eckaeg/info.txt b/src/pubkey/eckaeg/info.txt
deleted file mode 100644
index cac352a2a..000000000
--- a/src/pubkey/eckaeg/info.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-define ECKAEG
-
-<requires>
-alloc
-asn1
-ec_dompar
-ecc_key
-libstate
-numbertheory
-</requires>