Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members

esign.cpp

00001 // esign.cpp - written and placed in the public domain by Wei Dai 00002 00003 #include "pch.h" 00004 #include "esign.h" 00005 #include "asn.h" 00006 #include "modarith.h" 00007 #include "nbtheory.h" 00008 #include "sha.h" 00009 #include "algparam.h" 00010 00011 NAMESPACE_BEGIN(CryptoPP) 00012 00013 void ESIGN_TestInstantiations() 00014 { 00015 ESIGN<SHA>::Verifier x1(1, 1); 00016 ESIGN<SHA>::Signer x2(NullRNG(), 1); 00017 ESIGN<SHA>::Verifier x3(x2); 00018 ESIGN<SHA>::Verifier x4(x2.GetKey()); 00019 ESIGN<SHA>::Verifier x5(x3); 00020 ESIGN<SHA>::Signer x6 = x2; 00021 00022 x6 = x2; 00023 x3 = ESIGN<SHA>::Verifier(x2); 00024 x4 = x2.GetKey(); 00025 } 00026 00027 void ESIGNFunction::BERDecode(BufferedTransformation &bt) 00028 { 00029 BERSequenceDecoder seq(bt); 00030 m_n.BERDecode(seq); 00031 m_e.BERDecode(seq); 00032 seq.MessageEnd(); 00033 } 00034 00035 void ESIGNFunction::DEREncode(BufferedTransformation &bt) const 00036 { 00037 DERSequenceEncoder seq(bt); 00038 m_n.DEREncode(seq); 00039 m_e.DEREncode(seq); 00040 seq.MessageEnd(); 00041 } 00042 00043 Integer ESIGNFunction::ApplyFunction(const Integer &x) const 00044 { 00045 DoQuickSanityCheck(); 00046 return STDMIN(a_exp_b_mod_c(x, m_e, m_n) >> (2*GetK()+2), MaxImage()); 00047 } 00048 00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">00049 pan> 00051 <">