From dba6c35c5b62eb13d3c4cad18d7cc43ac82d1e9f Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Thu, 14 Jul 2016 01:59:23 -0400 Subject: Updated documentation --- eccrypto.h | 83 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 41 insertions(+), 42 deletions(-) (limited to 'eccrypto.h') diff --git a/eccrypto.h b/eccrypto.h index c90e06c4..ae4ad227 100644 --- a/eccrypto.h +++ b/eccrypto.h @@ -23,10 +23,10 @@ NAMESPACE_BEGIN(CryptoPP) -//! Elliptic Curve Parameters -/*! This class corresponds to the ASN.1 sequence of the same name - in ANSI X9.62 (also SEC 1). -*/ +//! \brief Elliptic Curve Parameters +//! \tparam EC elliptic curve field +//! \details This class corresponds to the ASN.1 sequence of the same name +//! in ANSI X9.62 and SEC 1. EC is currently defined for ECP and EC2N. template class DL_GroupParameters_EC : public DL_GroupParametersImpl > { @@ -215,44 +215,43 @@ struct ECMQV #endif }; -//! Hashed Menezes-Qu-Vanstone in GF(p) with key validation, -/*! HMQV: A High-Performance Secure Diffie-Hellman Protocol - Note: this implements HMQV only. HMQV-C (with Key Confirmation) will be provided separately. -*/ -template ::DefaultCofactorOption, class HASH = SHA256> -struct HMQV -{ - typedef HMQV_Domain, COFACTOR_OPTION, HASH> Domain; - -#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 - virtual ~HMQV() {} -#endif -}; - -typedef HMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA1 >::Domain HMQV160; -typedef HMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA256 >::Domain HMQV256; -typedef HMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA384 >::Domain HMQV384; -typedef HMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA512 >::Domain HMQV512; - -//! Fully Hashed Menezes-Qu-Vanstone in GF(p) with key validation, -/*! A Secure and Efficient Authenticated Diffie–Hellman Protocol - Note: this is FHMQV, Protocol 5, from page 11; and not FHMQV-C. -*/ -template ::DefaultCofactorOption, class HASH = SHA256> -struct FHMQV -{ - typedef FHMQV_Domain, COFACTOR_OPTION, HASH> Domain; - -#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 - virtual ~FHMQV() {} -#endif -}; - -typedef FHMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA1 >::Domain FHMQV160; -typedef FHMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA256 >::Domain FHMQV256; -typedef FHMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA384 >::Domain FHMQV384; -typedef FHMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA512 >::Domain FHMQV512; - +//! \brief Hashed Menezes-Qu-Vanstone in ECP or EC2N +//! \details This implementation follows Hugo Krawczyk's HMQV: A High-Performance +//! Secure Diffie-Hellman Protocol. Note: this implements HMQV only. HMQV-C with Key Confirmation is not provided. +template ::DefaultCofactorOption, class HASH = SHA256> +struct HMQV +{ + typedef HMQV_Domain, COFACTOR_OPTION, HASH> Domain; + +#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 + virtual ~HMQV() {} +#endif +}; + +typedef HMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA1 >::Domain HMQV160; +typedef HMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA256 >::Domain HMQV256; +typedef HMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA384 >::Domain HMQV384; +typedef HMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA512 >::Domain HMQV512; + +//! \brief Fully Hashed Menezes-Qu-Vanstone in ECP or EC2N +//! \details This implementation follows Augustin P. Sarr and Philippe Elbaz–Vincent, and Jean–Claude Bajard's +//! A Secure and Efficient Authenticated Diffie-Hellman Protocol. +//! Note: this is FHMQV, Protocol 5, from page 11; and not FHMQV-C. +template ::DefaultCofactorOption, class HASH = SHA256> +struct FHMQV +{ + typedef FHMQV_Domain, COFACTOR_OPTION, HASH> Domain; + +#ifndef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY_562 + virtual ~FHMQV() {} +#endif +}; + +typedef FHMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA1 >::Domain FHMQV160; +typedef FHMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA256 >::Domain FHMQV256; +typedef FHMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA384 >::Domain FHMQV384; +typedef FHMQV< ECP, DL_GroupParameters_EC< ECP >::DefaultCofactorOption, SHA512 >::Domain FHMQV512; + //! EC keys template struct DL_Keys_EC -- cgit v1.2.1