Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

TranslationCertificate.h

00001 /*
00002  * Copyright 2003 Michael A. Marsh, Cornell University. All rights reserved.
00003  * This software is released under the modified BSD license.
00004  * See the file LICENSE in the top-level directory for details.
00005  */
00006 //
00007 // $Id: TranslationCertificate.h,v 1.4 2005/01/21 19:44:16 mmarsh Exp $
00008 //
00009 // $Log: TranslationCertificate.h,v $
00010 // Revision 1.4  2005/01/21 19:44:16  mmarsh
00011 // Updated for compatibility with Doxygen 1.4.1
00012 //
00013 // Revision 1.3  2004/05/19 15:56:47  mmarsh
00014 // *** empty log message ***
00015 //
00016 // Revision 1.2  2003/11/04 22:31:48  mmarsh
00017 // *** empty log message ***
00018 //
00019 //
00020 
00021 #ifndef __CODEX_CIPHERS_TRANSLATIONCERTIFICATE_H__
00022 #define __CODEX_CIPHERS_TRANSLATIONCERTIFICATE_H__
00023 
00024 #include "ElGamal.h"
00025 #include "HashFunction.h"
00026 
00027 namespace CODEX_Ciphers
00028 {
00051    class TranslationCertificate : public CODEX_ASN1::Base
00052    {
00053       public :
00055          TranslationCertificate();
00056 
00090          TranslationCertificate( const ElGamalPublicKey& pubKeyRecipient,
00091                                  const ElGamalPrivateKey& privKeyCreator,
00092                                  const CODEX_ASN1::BigNumber& h,
00093                                  const BIGNUM * k,
00094                                  const ElGamalCipherText& cipherTextCreator,
00095                                  const HashFunction& hashFunc );
00096 
00098          TranslationCertificate( const CODEX_ASN1::BigNumber& z1bar,
00099                                  const CODEX_ASN1::BigNumber& z2bar,
00100                                  const CODEX_ASN1::BigNumber& G,
00101                                  const CODEX_ASN1::BigNumber& H,
00102                                  const CODEX_ASN1::BigNumber& delta,
00103                                  const CODEX_ASN1::BigNumber& F,
00104                                  const CODEX_ASN1::BigNumber& M,
00105                                  const CODEX_ASN1::BigNumber& d1,
00106                                  const CODEX_ASN1::BigNumber& d2 );
00107 
00109          TranslationCertificate( const TranslationCertificate& aCert );
00110 
00112          virtual ~TranslationCertificate() {}
00113 
00115          void operator=( const TranslationCertificate& aCert );
00116 
00118          const CODEX_ASN1::BigNumber& z1bar() const { return m_z1bar; }
00120          const CODEX_ASN1::BigNumber& z2bar() const { return m_z2bar; }
00122          const CODEX_ASN1::BigNumber& G() const { return m_G; }
00124          const CODEX_ASN1::BigNumber& H() const { return m_H; }
00126          const CODEX_ASN1::BigNumber& delta() const { return m_delta; }
00128          const CODEX_ASN1::BigNumber& F() const { return m_F; }
00130          const CODEX_ASN1::BigNumber& M() const { return m_M; }
00132          const CODEX_ASN1::BigNumber& d1() const { return m_d1; }
00134          const CODEX_ASN1::BigNumber& d2() const { return m_d2; }
00135 
00162          bool verify( const CODEX_ASN1::BigNumber& yCreator,
00163                       const ElGamalPublicKey& pubKeyRecipient,
00164                       const ElGamalCipherText& cipherTextCreator,
00165                       const ElGamalCipherText& cipherTextRecipient,
00166                       const CODEX_ASN1::BigNumber& h,
00167                       const HashFunction& hashFunc ) const;
00168 
00170          int marshal( unsigned char ** pp ) const;
00171 
00173          void* unmarshal( void* bogus, unsigned char ** pp, long length );
00174 
00175       private :
00176          CODEX_ASN1::BigNumber m_z1bar;
00177          CODEX_ASN1::BigNumber m_z2bar;
00178          CODEX_ASN1::BigNumber m_G;
00179          CODEX_ASN1::BigNumber m_H;
00180          CODEX_ASN1::BigNumber m_delta;
00181          CODEX_ASN1::BigNumber m_F;
00182          CODEX_ASN1::BigNumber m_M;
00183          CODEX_ASN1::BigNumber m_d1;
00184          CODEX_ASN1::BigNumber m_d2;
00185    };
00186 }
00187 
00188 #endif /* __CODEX_CIPHERS_TRANSLATIONCERTIFICATE_H__ */

Generated on Fri May 6 17:41:27 2005 for COrnell Data EXchange (CODEX) by  doxygen 1.4.1