Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound 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.3 2004/05/19 15:56:47 mmarsh Exp $
00008 //
00009 // $Log: TranslationCertificate.h,v $
00010 // Revision 1.3  2004/05/19 15:56:47  mmarsh
00011 // *** empty log message ***
00012 //
00013 // Revision 1.2  2003/11/04 22:31:48  mmarsh
00014 // *** empty log message ***
00015 //
00016 //
00017 
00018 #ifndef __CODEX_CIPHERS_TRANSLATIONCERTIFICATE_H__
00019 #define __CODEX_CIPHERS_TRANSLATIONCERTIFICATE_H__
00020 
00021 #include "ElGamal.h"
00022 #include "HashFunction.h"
00023 
00024 namespace CODEX_Ciphers
00025 {
00048    class TranslationCertificate : public CODEX_ASN1::Base
00049    {
00050       public :
00052          TranslationCertificate();
00053 
00087          TranslationCertificate( const ElGamalPublicKey& pubKeyRecipient,
00088                                  const ElGamalPrivateKey& privKeyCreator,
00089                                  const CODEX_ASN1::BigNumber& h,
00090                                  const BIGNUM * k,
00091                                  const ElGamalCipherText& cipherTextCreator,
00092                                  const HashFunction& hashFunc );
00093 
00095          TranslationCertificate( const CODEX_ASN1::BigNumber& z1bar,
00096                                  const CODEX_ASN1::BigNumber& z2bar,
00097                                  const CODEX_ASN1::BigNumber& G,
00098                                  const CODEX_ASN1::BigNumber& H,
00099                                  const CODEX_ASN1::BigNumber& delta,
00100                                  const CODEX_ASN1::BigNumber& F,
00101                                  const CODEX_ASN1::BigNumber& M,
00102                                  const CODEX_ASN1::BigNumber& d1,
00103                                  const CODEX_ASN1::BigNumber& d2 );
00104 
00106          TranslationCertificate( const TranslationCertificate& aCert );
00107 
00109          virtual ~TranslationCertificate() {}
00110 
00112          void operator=( const TranslationCertificate& aCert );
00113 
00115          const CODEX_ASN1::BigNumber& z1bar() const { return m_z1bar; }
00117          const CODEX_ASN1::BigNumber& z2bar() const { return m_z2bar; }
00119          const CODEX_ASN1::BigNumber& G() const { return m_G; }
00121          const CODEX_ASN1::BigNumber& H() const { return m_H; }
00123          const CODEX_ASN1::BigNumber& delta() const { return m_delta; }
00125          const CODEX_ASN1::BigNumber& F() const { return m_F; }
00127          const CODEX_ASN1::BigNumber& M() const { return m_M; }
00129          const CODEX_ASN1::BigNumber& d1() const { return m_d1; }
00131          const CODEX_ASN1::BigNumber& d2() const { return m_d2; }
00132 
00159          bool verify( const CODEX_ASN1::BigNumber& yCreator,
00160                       const ElGamalPublicKey& pubKeyRecipient,
00161                       const ElGamalCipherText& cipherTextCreator,
00162                       const ElGamalCipherText& cipherTextRecipient,
00163                       const CODEX_ASN1::BigNumber& h,
00164                       const HashFunction& hashFunc ) const;
00165 
00167          int marshal( unsigned char ** pp ) const;
00168 
00170          void* unmarshal( void* bogus, unsigned char ** pp, long length );
00171 
00172       private :
00173          CODEX_ASN1::BigNumber m_z1bar;
00174          CODEX_ASN1::BigNumber m_z2bar;
00175          CODEX_ASN1::BigNumber m_G;
00176          CODEX_ASN1::BigNumber m_H;
00177          CODEX_ASN1::BigNumber m_delta;
00178          CODEX_ASN1::BigNumber m_F;
00179          CODEX_ASN1::BigNumber m_M;
00180          CODEX_ASN1::BigNumber m_d1;
00181          CODEX_ASN1::BigNumber m_d2;
00182    };
00183 }
00184 
00185 #endif /* __CODEX_CIPHERS_TRANSLATIONCERTIFICATE_H__ */

Generated on Wed Jun 2 16:32:57 2004 for COrnell Data EXchange (CODEX) by doxygen1.2.18