亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? luc.h

?? #include "pch.h" #include "base64.h" NAMESPACE_BEGIN(CryptoPP) static const int MAX_LINE_LENG
?? H
字號:
#ifndef CRYPTOPP_LUC_H
#define CRYPTOPP_LUC_H

#include "pkcspad.h"
#include "oaep.h"
#include "integer.h"

NAMESPACE_BEGIN(CryptoPP)

class LUCFunction : virtual public TrapdoorFunction
{
public:
	LUCFunction(const Integer &n, const Integer &e) : n(n), e(e) {}
	LUCFunction(BufferedTransformation &bt);
	void DEREncode(BufferedTransformation &bt) const;

	Integer ApplyFunction(const Integer &x) const;
	Integer MaxPreimage() const {return n-1;}
	Integer MaxImage() const {return n-1;}

protected:
	LUCFunction() {}	// to be used only by InvertableLUCFunction
	Integer n, e;	// these are only modified in constructors
};

class InvertableLUCFunction : public LUCFunction, public InvertableTrapdoorFunction
{
public:
	InvertableLUCFunction(const Integer &n, const Integer &e,
						  const Integer &p, const Integer &q, const Integer &u);
	// generate a random private key
	InvertableLUCFunction(RandomNumberGenerator &rng, unsigned int keybits, const Integer &eStart=17);
	InvertableLUCFunction(BufferedTransformation &bt);
	void DEREncode(BufferedTransformation &bt) const;

	Integer CalculateInverse(const Integer &x) const;

protected:
	Integer p, q, u;
};

template <class B>
class LUCPrivateKeyTemplate : public B
{
public:
	LUCPrivateKeyTemplate(const Integer &n, const Integer &e, 
				const Integer &p, const Integer &q, const Integer &u)
		: PublicKeyBaseTemplate<InvertableLUCFunction>(
			InvertableLUCFunction(n, e, p, q, u)) {}

	LUCPrivateKeyTemplate(RandomNumberGenerator &rng, unsigned int keybits, const Integer &eStart=17)
		: PublicKeyBaseTemplate<InvertableLUCFunction>(
			InvertableLUCFunction(rng, keybits, eStart)) {}

	LUCPrivateKeyTemplate(BufferedTransformation &bt)
		: PublicKeyBaseTemplate<InvertableLUCFunction>(bt) {}
};

template <class B, class V>
class LUCPublicKeyTemplate : public B
{
public:
	LUCPublicKeyTemplate(const Integer &n, const Integer &e)
		: PublicKeyBaseTemplate<LUCFunction>(LUCFunction(n, e)) {}

	LUCPublicKeyTemplate(const V &priv)
		: PublicKeyBaseTemplate<LUCFunction>(priv.GetTrapdoorFunction()) {}

	LUCPublicKeyTemplate(BufferedTransformation &bt)
		: PublicKeyBaseTemplate<LUCFunction>(bt) {}
};

// analagous to the RSA schemes defined in PKCS #1 v2.0
typedef LUCPrivateKeyTemplate<DecryptorTemplate<OAEP<SHA>, InvertableLUCFunction> >
	LUCES_OAEP_SHA_Decryptor;
typedef LUCPublicKeyTemplate<EncryptorTemplate<OAEP<SHA>, LUCFunction>, LUCES_OAEP_SHA_Decryptor>
	LUCES_OAEP_SHA_Encryptor;

typedef LUCPrivateKeyTemplate<SignerTemplate<DigestSignerTemplate<PKCS_SignaturePaddingScheme, InvertableLUCFunction>, PKCS_DecoratedHashModule<SHA> > >
	LUCSSA_PKCS1v15_SHA_Signer;
typedef LUCPublicKeyTemplate<VerifierTemplate<DigestVerifierTemplate<PKCS_SignaturePaddingScheme, LUCFunction>, PKCS_DecoratedHashModule<SHA> >, LUCSSA_PKCS1v15_SHA_Signer>
	LUCSSA_PKCS1v15_SHA_Verifier;

// ********************************************************

class LUCELG_Encryptor : public PK_FixedLengthEncryptor
{
public:
	LUCELG_Encryptor(const Integer &p, const Integer &g, const Integer &y);
	LUCELG_Encryptor(BufferedTransformation &bt);

	void DEREncode(BufferedTransformation &bt) const;

	void Encrypt(RandomNumberGenerator &rng, const byte *plainText, unsigned int plainTextLength, byte *cipherText);

	unsigned int MaxPlainTextLength() const {return STDMIN(255U, modulusLen-3);}
	unsigned int CipherTextLength() const {return 2*modulusLen;}

protected:
	LUCELG_Encryptor() {}
	void RawEncrypt(const Integer &k, const Integer &m, Integer &a, Integer &b) const;
	unsigned int ExponentBitLength() const;

	Integer p, g, y;
	unsigned int modulusLen;
};

class LUCELG_Decryptor : public LUCELG_Encryptor, public PK_FixedLengthDecryptor
{
public:
	LUCELG_Decryptor(const Integer &p, const Integer &g, const Integer &y, const Integer &x);
	LUCELG_Decryptor(RandomNumberGenerator &rng, unsigned int pbits);
	// generate a random private key, given p and g
	LUCELG_Decryptor(RandomNumberGenerator &rng, const Integer &p, const Integer &g);

	LUCELG_Decryptor(BufferedTransformation &bt);
	void DEREncode(BufferedTransformation &bt) const;

	unsigned int Decrypt(const byte *cipherText, byte *plainText);

protected:
	void RawDecrypt(const Integer &a, const Integer &b, Integer &m) const;

	Integer x;
};

// ********************************************************

class LUCELG_DigestVerifier : public DigestVerifier
{
public:
	LUCELG_DigestVerifier(const Integer &p, const Integer &q, const Integer &g, const Integer &y);
	LUCELG_DigestVerifier(BufferedTransformation &bt);

	void DEREncode(BufferedTransformation &bt) const;
	bool VerifyDigest(const byte *digest, unsigned int digestLen, const byte *signature) const;

	unsigned int MaxDigestLength() const {return UINT_MAX;}
	unsigned int DigestSignatureLength() const {return p.ByteCount()+q.ByteCount();}

protected:
	LUCELG_DigestVerifier() {}
	bool RawVerify(const Integer &m, const Integer &a, const Integer &b) const;
	Integer EncodeDigest(const byte *digest, unsigned int digestLen) const;

	Integer p, q, g, y;
};

class LUCELG_DigestSigner : public LUCELG_DigestVerifier, public DigestSigner
{
public:
	LUCELG_DigestSigner(const Integer &p, const Integer &q, const Integer &g, const Integer &y, const Integer &x);
	LUCELG_DigestSigner(RandomNumberGenerator &rng, unsigned int pbits);
	LUCELG_DigestSigner(RandomNumberGenerator &rng, const Integer &p, const Integer &q, const Integer &g);
	LUCELG_DigestSigner(BufferedTransformation &bt);

	void DEREncode(BufferedTransformation &bt) const;
	void SignDigest(RandomNumberGenerator &rng, const byte *digest, unsigned int digestLen, byte *signature) const;

protected:
	void RawSign(RandomNumberGenerator &rng, const Integer &m, Integer &a, Integer &b) const;

	Integer x;
};

template <class H>
class LUCELG_Signer : public SignerTemplate<LUCELG_DigestSigner, H>
{
	typedef SignerTemplate<LUCELG_DigestSigner, H> Base;
public:
	LUCELG_Signer(const Integer &p, const Integer &q, const Integer &g, const Integer &y, const Integer &x)
		: Base(LUCELG_DigestSigner(p, q, g, y, x)) {}

	// generate a random private key
	LUCELG_Signer(RandomNumberGenerator &rng, unsigned int keybits)
		: Base(LUCELG_DigestSigner(rng, keybits)) {}

	// generate a random private key, given p, q, and g
	LUCELG_Signer(RandomNumberGenerator &rng, const Integer &p, const Integer &q, const Integer &g)
		: Base(LUCELG_DigestSigner(rng, p, q, g)) {}

	// load a previously generated key
	LUCELG_Signer(BufferedTransformation &storedKey)
		: Base(storedKey) {}
};

template <class H>
class LUCELG_Verifier : public VerifierTemplate<LUCELG_DigestVerifier, H>
{
	typedef VerifierTemplate<LUCELG_DigestVerifier, H> Base;
public:
	LUCELG_Verifier(const Integer &p, const Integer &q, const Integer &g, const Integer &y)
		: Base(LUCELG_DigestVerifier(p, q, g, y)) {}

	// create a matching public key from a private key
	LUCELG_Verifier(const LUCELG_Signer<H> &priv)
		: Base(priv) {}

	// load a previously generated key
	LUCELG_Verifier(BufferedTransformation &storedKey)
		: Base(storedKey) {}
};

// ********************************************************

class LUCDIF : public PK_SimpleKeyAgreementDomain
{
public:
	LUCDIF(const Integer &p, const Integer &g);
	LUCDIF(RandomNumberGenerator &rng, unsigned int pbits);
	LUCDIF(BufferedTransformation &domainParams);

	void DEREncode(BufferedTransformation &domainParams) const;

	bool ValidateDomainParameters(RandomNumberGenerator &rng) const;
	unsigned int AgreedValueLength() const {return p.ByteCount();}
	unsigned int PrivateKeyLength() const {return p.ByteCount();}
	unsigned int PublicKeyLength() const {return p.ByteCount();}

	void GenerateKeyPair(RandomNumberGenerator &rng, byte *secretKey, byte *publicKey) const;
	bool Agree(byte *agreedValue, const byte *secretKey, const byte *otherPublicKey, bool validateOtherPublicKey=true) const;

	const Integer &Prime() const {return p;}
	const Integer &Generator() const {return g;}

private:
	unsigned int ExponentBitLength() const;

	Integer p, g;
};

NAMESPACE_END

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人在线网站| 午夜精品久久久久久久| 欧美亚洲综合在线| 日产精品久久久久久久性色| 国产精品高潮呻吟| 欧美人与性动xxxx| 国产suv精品一区二区三区| 亚洲成人综合网站| 中文字幕第一区| 这里是久久伊人| 91麻豆免费视频| 免费成人av资源网| 日韩专区在线视频| 中文字幕精品一区二区精品绿巨人| 日韩欧美自拍偷拍| 色婷婷久久久综合中文字幕| 国产专区欧美精品| 日本美女一区二区三区视频| 最新久久zyz资源站| 久久欧美一区二区| 69堂成人精品免费视频| gogogo免费视频观看亚洲一| 国产精品亚洲综合一区在线观看| 亚洲成人av电影| 亚洲电影在线播放| 亚洲视频电影在线| 久久久99精品免费观看不卡| 欧美一区二区三区免费大片| 一本一本大道香蕉久在线精品 | 国产精品18久久久久久久久 | 亚洲精品一区二区三区99| 91黄色免费看| 99久久99久久综合| 大尺度一区二区| 国产一区二区三区免费| 日本不卡123| 久久99国内精品| 日韩电影免费在线| 亚洲老司机在线| 国产成人亚洲综合a∨婷婷| 亚洲国产另类精品专区| 亚洲国产成人tv| 一区二区国产视频| 亚洲精品v日韩精品| 亚洲人快播电影网| 亚洲欧美日韩中文字幕一区二区三区 | 一本一道波多野结衣一区二区| 91久久精品网| 69堂精品视频| 91精品国产色综合久久不卡蜜臀 | 亚洲动漫第一页| 日韩精品一级中文字幕精品视频免费观看| 夜夜精品浪潮av一区二区三区| 综合电影一区二区三区| 亚洲香肠在线观看| 亚洲二区在线观看| 麻豆精品视频在线| 久久99国产精品尤物| 日本成人在线电影网| 激情综合亚洲精品| 国产尤物一区二区在线| 不卡电影一区二区三区| 99re在线精品| 精品1区2区3区| 欧美一级视频精品观看| 精品国产一区久久| 国产精品美女久久久久aⅴ国产馆| 中文字幕中文字幕一区二区| 一级精品视频在线观看宜春院| 亚洲综合在线第一页| 亚洲免费av高清| 久久精品噜噜噜成人88aⅴ| 久久99国产精品成人| 成人黄色在线看| 色婷婷av一区二区三区之一色屋| 99精品视频在线播放观看| 色一情一乱一乱一91av| 欧美高清一级片在线| 国产视频不卡一区| 亚洲欧美日韩中文字幕一区二区三区| 亚洲高清在线精品| 国产在线一区观看| 色哟哟一区二区在线观看| 欧美电影免费观看完整版| 国产亚洲视频系列| 亚洲bt欧美bt精品777| 国产在线播放一区二区三区| 懂色av一区二区三区蜜臀| 欧美午夜精品一区二区蜜桃| 日韩一级成人av| 亚洲男同性恋视频| 韩国精品在线观看| 夫妻av一区二区| 欧美一级一区二区| 国产精品乱码久久久久久| 日日摸夜夜添夜夜添国产精品| 麻豆精品一二三| 91视频观看免费| 1024国产精品| 国产又粗又猛又爽又黄91精品| 91女人视频在线观看| 欧美三级蜜桃2在线观看| 久久久久久久性| 亚洲小少妇裸体bbw| 国产精品18久久久久久久久 | 日韩一区二区麻豆国产| 日韩欧美电影在线| 亚洲综合在线电影| 国产精选一区二区三区| 制服.丝袜.亚洲.另类.中文| 国产精品视频yy9299一区| 久久国产精品第一页| 色噜噜久久综合| 日韩欧美另类在线| 日韩成人dvd| 色综合中文字幕| 国产精品乱码妇女bbbb| 免费在线视频一区| 51午夜精品国产| 亚洲免费观看高清完整版在线| 国产传媒久久文化传媒| 91精品国产91久久综合桃花| 亚洲欧洲av在线| av高清不卡在线| 精品国产三级a在线观看| 美女mm1313爽爽久久久蜜臀| 色猫猫国产区一区二在线视频| 亚洲欧美综合另类在线卡通| 极品美女销魂一区二区三区免费 | 欧美三级午夜理伦三级中视频| 国产精品久久久久久久第一福利| 蜜桃久久久久久久| 欧美一区二区三区四区五区| 亚洲线精品一区二区三区八戒| 欧洲一区在线观看| 综合分类小说区另类春色亚洲小说欧美| 成人夜色视频网站在线观看| 日韩精品一区二区三区四区视频 | 日韩精品欧美成人高清一区二区| 一本色道a无线码一区v| 成人免费在线播放视频| 972aa.com艺术欧美| 国产精品国产三级国产普通话三级 | 五月天国产精品| 欧美日韩精品是欧美日韩精品| 亚洲色图制服诱惑| 在线观看www91| 亚洲成人av免费| 日韩欧美国产小视频| 日韩av中文在线观看| 欧美另类变人与禽xxxxx| 蜜臀精品一区二区三区在线观看| 欧美妇女性影城| 精品一区二区三区免费视频| 欧美一区二区三区不卡| 国内成+人亚洲+欧美+综合在线 | 成人黄色综合网站| 中文字幕一区二区三区av| 欧美中文一区二区三区| 亚洲午夜在线视频| 日韩美女视频在线| 精品一区精品二区高清| 国产精品美女久久久久高潮| 91在线视频网址| 亚洲免费在线电影| 色婷婷av一区二区三区之一色屋| 亚洲一区二区三区中文字幕| 欧美一级免费观看| 极品少妇一区二区| 亚洲精品中文在线| 欧美日韩三级视频| 国产乱码精品一区二区三区av | 日韩理论片在线| 91蜜桃传媒精品久久久一区二区| 国产精品乱子久久久久| 欧美日本在线视频| 经典三级在线一区| 亚洲精品成人少妇| 欧美妇女性影城| 99久久精品一区二区| 亚洲成人av福利| 国产精品久久久久久久久果冻传媒| 色美美综合视频| 美日韩黄色大片| 日本一区二区三区四区在线视频 | 久久精品国产**网站演员| 一色桃子久久精品亚洲| 中文字幕一区二区三区在线播放| 欧美片网站yy| 国产精品亚洲一区二区三区在线 | 欧美精品aⅴ在线视频| 麻豆久久久久久久| 亚洲猫色日本管| 精品久久久久久最新网址| 在线观看视频91| 精品午夜一区二区三区在线观看 | 亚洲成人动漫在线免费观看| 精品国产sm最大网站免费看| 91精彩视频在线| 国产高清精品久久久久|