1#ifndef CRYPTOPP_DSA_H 2#define CRYPTOPP_DSA_H 3 4/** \file 5*/ 6 7#include "gfpcrypt.h" 8 9NAMESPACE_BEGIN(CryptoPP) 10 11/*! The DSA signature format used by Crypto++ is as defined by IEEE P1363. 12 Java uses the DER format, and OpenPGP uses the OpenPGP format. */ 13enum DSASignatureFormat {DSA_P1363, DSA_DER, DSA_OPENPGP}; 14/** This function converts between these formats, and returns length of signature in the target format. 15 If toFormat == DSA_P1363, bufferSize must equal publicKey.SignatureLength() */ 16size_t DSAConvertSignatureFormat(byte *buffer, size_t bufferSize, DSASignatureFormat toFormat, 17 const byte *signature, size_t signatureLen, DSASignatureFormat fromFormat); 18 19#ifdef CRYPTOPP_MAINTAIN_BACKWARDS_COMPATIBILITY 20 21typedef DSA::Signer DSAPrivateKey; 22typedef DSA::Verifier DSAPublicKey; 23 24const int MIN_DSA_PRIME_LENGTH = DSA::MIN_PRIME_LENGTH; 25const int MAX_DSA_PRIME_LENGTH = DSA::MAX_PRIME_LENGTH; 26const int DSA_PRIME_LENGTH_MULTIPLE = DSA::PRIME_LENGTH_MULTIPLE; 27 28inline bool GenerateDSAPrimes(const byte *seed, size_t seedLength, int &counter, Integer &p, unsigned int primeLength, Integer &q) 29 {return DSA::GeneratePrimes(seed, seedLength, counter, p, primeLength, q);} 30 31#endif 32 33NAMESPACE_END 34 35#endif 36