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

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

?? luc.h

?? 300個加解密的集合程序
?? 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一区二区三区免费野_久草精品视频
亚洲免费在线看| 亚洲欧美日韩国产手机在线| 91日韩精品一区| 国产精品 日产精品 欧美精品| 青青青爽久久午夜综合久久午夜| 午夜电影网一区| 日韩精品国产精品| 黄色小说综合网站| 国产精品中文有码| 成人一级黄色片| av成人动漫在线观看| 成人av资源在线观看| 97久久久精品综合88久久| 色老综合老女人久久久| 欧美色爱综合网| 欧美一区二区视频在线观看| 精品国产乱码久久久久久夜甘婷婷| 精品少妇一区二区三区日产乱码| 精品国产亚洲一区二区三区在线观看 | 亚洲精品一线二线三线| 久久久99久久精品欧美| 国产精品你懂的| 一区二区三区av电影| 日韩在线一区二区| 国产乱国产乱300精品| 成人综合在线观看| 欧美伊人久久久久久久久影院| 欧美精品日韩一区| 国产欧美日韩在线| 亚洲国产日韩av| 精品亚洲porn| 91视频免费观看| 欧美电视剧免费观看| 国产精品欧美极品| 日韩中文字幕1| 成人性视频网站| 91精品欧美综合在线观看最新| xfplay精品久久| 亚洲女厕所小便bbb| 美日韩一区二区三区| 成人免费视频国产在线观看| 欧洲精品一区二区三区在线观看| 欧美大片国产精品| 亚洲激情综合网| 国产91精品一区二区麻豆网站 | 国产成人在线视频网址| 在线视频一区二区三区| 精品乱人伦一区二区三区| 亚洲免费在线电影| 韩日欧美一区二区三区| 欧美剧情电影在线观看完整版免费励志电影| 精品1区2区在线观看| 亚洲成人免费av| 91麻豆成人久久精品二区三区| 26uuu另类欧美| 亚洲1区2区3区4区| 色综合色综合色综合色综合色综合| 精品国产乱码久久| 日韩va欧美va亚洲va久久| 一本色道久久综合亚洲精品按摩| 久久久久久久久久久电影| 日本 国产 欧美色综合| 欧美性色黄大片| 一区二区三区在线免费视频| 国产精品综合视频| 亚洲精品一区二区三区精华液| 天使萌一区二区三区免费观看| 色久综合一二码| 亚洲精品视频在线观看免费| 国产91对白在线观看九色| 久久综合一区二区| 日韩有码一区二区三区| 777久久久精品| 天天综合网天天综合色| 欧美日高清视频| 午夜视频在线观看一区| 欧美精品乱码久久久久久按摩| 亚洲在线免费播放| 欧美日韩国产在线播放网站| 亚洲一区二三区| 精品污污网站免费看| 亚洲国产乱码最新视频| 日本乱人伦一区| 亚洲国产精品一区二区久久| 91成人在线免费观看| 性感美女极品91精品| 欧美久久一二区| 久久se精品一区二区| 欧美精品一区视频| 成人av在线资源| 亚洲男人的天堂在线aⅴ视频| 在线免费亚洲电影| 天使萌一区二区三区免费观看| 日韩视频免费观看高清完整版| 毛片不卡一区二区| 国产午夜精品一区二区三区视频 | 一区二区三区在线视频免费| 91精品福利视频| 丝袜脚交一区二区| 久久精品亚洲一区二区三区浴池| 成人中文字幕合集| 亚洲一区二区三区激情| 日韩精品一区二区三区四区 | 九色综合狠狠综合久久| 久久久电影一区二区三区| 99国内精品久久| 日韩成人午夜精品| 国产欧美1区2区3区| 在线欧美日韩国产| 国产成人精品一区二区三区四区 | 亚洲一二三区视频在线观看| 7777精品伊人久久久大香线蕉完整版| 日本成人在线看| 国产精品久久久久久久第一福利| 在线日韩一区二区| 懂色av中文字幕一区二区三区| 亚洲综合丝袜美腿| 国产精品免费久久久久| 欧美久久一二区| 色婷婷国产精品久久包臀| 国内精品久久久久影院薰衣草| 亚洲精品国产精品乱码不99 | 色综合久久久久网| 九色综合国产一区二区三区| 亚洲欧美激情一区二区| 亚洲精品一区二区精华| 欧美电影在哪看比较好| 99精品久久免费看蜜臀剧情介绍| 激情偷乱视频一区二区三区| 亚洲一区电影777| 国产精品国产三级国产aⅴ无密码 国产精品国产三级国产aⅴ原创 | 久国产精品韩国三级视频| 亚洲一级不卡视频| 亚洲色图丝袜美腿| 欧美国产禁国产网站cc| 欧美电影免费观看高清完整版在线 | 激情六月婷婷久久| 麻豆国产91在线播放| 亚洲国产成人av好男人在线观看| 欧美国产1区2区| 亚洲国产精品成人综合色在线婷婷 | 国产精品久久久久永久免费观看 | 久久久www免费人成精品| 欧美电影一区二区三区| 色乱码一区二区三区88| 菠萝蜜视频在线观看一区| 狠狠色丁香婷综合久久| 老司机精品视频在线| 日韩中文字幕亚洲一区二区va在线| 亚洲激情自拍偷拍| 亚洲精品乱码久久久久| 中文字幕一区二区三区在线不卡 | 亚洲精品高清视频在线观看| 国产无一区二区| 久久久久久**毛片大全| 2020国产精品自拍| 国产日韩精品久久久| 国产三区在线成人av| 国产欧美久久久精品影院| 国产精品私房写真福利视频| 国产欧美一区二区精品久导航| 国产片一区二区| 国产精品久久久一本精品| 亚洲色欲色欲www| 一区二区三区资源| 亚洲一区二区不卡免费| 日本欧美一区二区三区| 九九视频精品免费| 国产99精品在线观看| www.综合网.com| 欧美怡红院视频| 日韩欧美一卡二卡| 国产午夜一区二区三区| 国产欧美日韩在线视频| 一二三区精品视频| 日本成人中文字幕| 成人免费的视频| 欧美亚洲综合久久| 日韩免费视频一区| 中文字幕国产精品一区二区| 一区二区三区四区中文字幕| 同产精品九九九| 国产一区二区三区综合 | 一区二区三区资源| 免费观看成人av| 不卡的电视剧免费网站有什么| 91亚洲精品乱码久久久久久蜜桃| 欧美日韩一区二区三区四区五区| 日韩欧美国产综合| 亚洲三级在线看| 麻豆精品国产传媒mv男同| 成人性生交大片免费看在线播放| 欧美主播一区二区三区| 精品电影一区二区三区| 一区二区三区不卡视频| 国产一区二区女| 9191精品国产综合久久久久久| 久久久久久久综合日本| 日韩经典一区二区| 99久久精品国产导航|