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

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

?? r_enhanc.c

?? 利用c++的 文件加密設計 可以運行 但是沒有詳細的 說明
?? C
?? 第 1 頁 / 共 3 頁
字號:
unsigned char *encryptedKey;                      /* encoded, encrypted key */unsigned int *encryptedKeyLen;                                    /* length */unsigned char *encryptedSignature;          /* encoded, encrypted signature */unsigned int *encryptedSignatureLen;                              /* length */unsigned char iv[8];                           /* DES initialization vector */unsigned char *content;                                          /* content */unsigned int contentLen;                               /* length of content */int digestAlgorithm;                           /* message-digest algorithms */R_RSA_PUBLIC_KEY *publicKey;                  /* recipient's RSA public key */R_RSA_PRIVATE_KEY *privateKey;                  /* signer's RSA private key */R_RANDOM_STRUCT *randomStruct;                          /* random structure */{  R_ENVELOPE_CTX context;  R_RSA_PUBLIC_KEY *publicKeys[1];  int status;  unsigned char encryptedKeyBlock[MAX_ENCRYPTED_KEY_LEN],    signature[MAX_SIGNATURE_LEN], *encryptedKeys[1];  unsigned int signatureLen, encryptedKeyBlockLen;    do {    if ((status = R_SignBlock         (signature, &signatureLen, content, contentLen, digestAlgorithm,          privateKey)) != 0)      break;    publicKeys[0] = publicKey;    encryptedKeys[0] = encryptedKeyBlock;    if ((status = R_SealInit         (&context, encryptedKeys, &encryptedKeyBlockLen, iv, 1, publicKeys,          EA_DES_CBC, randomStruct)) != 0)      break;    R_EncodePEMBlock       (encryptedKey, encryptedKeyLen, encryptedKeyBlock,       encryptedKeyBlockLen);    EncryptPEMUpdateFinal      (&context, encryptedContent, encryptedContentLen, content,       contentLen);        EncryptPEMUpdateFinal      (&context, encryptedSignature, encryptedSignatureLen, signature,       signatureLen);  } while (0);    /* Zeroize sensitive information.   */  R_memset ((POINTER)&context, 0, sizeof (context));  R_memset ((POINTER)signature, 0, sizeof (signature));  return (status);}int R_OpenPEMBlock  (content, contentLen, encryptedContent, encryptedContentLen, encryptedKey,   encryptedKeyLen, encryptedSignature, encryptedSignatureLen,   iv, digestAlgorithm, privateKey, publicKey)unsigned char *content;                                          /* content */unsigned int *contentLen;                              /* length of content */unsigned char *encryptedContent;              /* encoded, encrypted content */unsigned int encryptedContentLen;                                 /* length */unsigned char *encryptedKey;                      /* encoded, encrypted key */unsigned int encryptedKeyLen;                                     /* length */unsigned char *encryptedSignature;          /* encoded, encrypted signature */unsigned int encryptedSignatureLen;                               /* length */unsigned char iv[8];                           /* DES initialization vector */int digestAlgorithm;                           /* message-digest algorithms */R_RSA_PRIVATE_KEY *privateKey;               /* recipient's RSA private key */R_RSA_PUBLIC_KEY *publicKey;                     /* signer's RSA public key */{  R_ENVELOPE_CTX context;  int status;  unsigned char encryptedKeyBlock[MAX_ENCRYPTED_KEY_LEN],    signature[MAX_SIGNATURE_LEN];  unsigned int encryptedKeyBlockLen, signatureLen;    if (encryptedKeyLen > MAX_PEM_ENCRYPTED_KEY_LEN)    return (RE_KEY_ENCODING);    if (encryptedSignatureLen > MAX_PEM_ENCRYPTED_SIGNATURE_LEN)    return (RE_SIGNATURE_ENCODING);    do {    if (R_DecodePEMBlock         (encryptedKeyBlock, &encryptedKeyBlockLen, encryptedKey,         encryptedKeyLen) != 0) {      status = RE_KEY_ENCODING;      break;    }    if ((status = R_OpenInit         (&context, EA_DES_CBC, encryptedKeyBlock, encryptedKeyBlockLen,          iv, privateKey)) != 0)      break;    if ((status = DecryptPEMUpdateFinal         (&context, content, contentLen, encryptedContent,          encryptedContentLen)) != 0) {      if ((status == RE_LEN || status == RE_ENCODING))        status = RE_CONTENT_ENCODING;      else        status = RE_KEY;      break;    }        if (status = DecryptPEMUpdateFinal        (&context, signature, &signatureLen, encryptedSignature,         encryptedSignatureLen)) {      if ((status == RE_LEN || status == RE_ENCODING))        status = RE_SIGNATURE_ENCODING;      else        status = RE_KEY;      break;    }    if ((status = R_VerifyBlockSignature         (content, *contentLen, signature, signatureLen, digestAlgorithm,          publicKey)) != 0)      break;  } while (0);    /* Zeroize sensitive information.   */  R_memset ((POINTER)&context, 0, sizeof (context));  R_memset ((POINTER)signature, 0, sizeof (signature));  return (status);}int R_DigestBlock (digest, digestLen, block, blockLen, digestAlgorithm)unsigned char *digest;                                    /* message digest */unsigned int *digestLen;                        /* length of message digest */unsigned char *block;                                              /* block */unsigned int blockLen;                                   /* length of block */int digestAlgorithm;                            /* message-digest algorithm */{  R_DIGEST_CTX context;  int status;  do {    if ((status = R_DigestInit (&context, digestAlgorithm)) != 0)      break;    if ((status = R_DigestUpdate (&context, block, blockLen)) != 0)      break;    if ((status = R_DigestFinal (&context, digest, digestLen)) != 0)      break;  } while (0);  /* Zeroize sensitive information. */  R_memset ((POINTER)&context, 0, sizeof (context));  return (status);}/* Assumes digestAlgorithm is DA_MD2 or DA_MD5 and digest length is 16. */static void R_EncodeDigestInfo (digestInfo, digestAlgorithm, digest)unsigned char *digestInfo;                           /* DigestInfo encoding */int digestAlgorithm;                            /* message-digest algorithm */unsigned char *digest;                                    /* message digest */{  R_memcpy     ((POINTER)digestInfo, (POINTER)DIGEST_INFO_A, DIGEST_INFO_A_LEN);    digestInfo[DIGEST_INFO_A_LEN] =    (digestAlgorithm == DA_MD2) ? (unsigned char)2 : (unsigned char)5;  R_memcpy     ((POINTER)&digestInfo[DIGEST_INFO_A_LEN + 1], (POINTER)DIGEST_INFO_B,     DIGEST_INFO_B_LEN);    R_memcpy     ((POINTER)&digestInfo[DIGEST_INFO_A_LEN + 1 + DIGEST_INFO_B_LEN],     (POINTER)digest, 16);}/* Call SealUpdate and SealFinal on the input and ASCII recode. */static void EncryptPEMUpdateFinal  (context, output, outputLen, input, inputLen)R_ENVELOPE_CTX *context;unsigned char *output;                          /* encrypted, encoded block */unsigned int *outputLen;                                /* length of output */unsigned char *input;                                   /* block to encrypt */unsigned int inputLen;                                            /* length */{  unsigned char encryptedPart[24];  unsigned int i, lastPartLen, tempLen, len;  /* Choose a buffer size of 24 bytes to hold the temporary encrypted output       which will be encoded.     Encrypt and encode as many 24-byte blocks as possible.   */  for (i = 0; i < inputLen / 24; ++i) {    /* Assume part out length will equal part in length since it is         a multiple of 8.  Also assume no error output. */    R_SealUpdate (context, encryptedPart, &tempLen, &input[24*i], 24);    /* len is always 32 */    R_EncodePEMBlock (&output[32*i], &tempLen, encryptedPart, 24);  }    /* Encrypt the last part into encryptedPart.   */    R_SealUpdate    (context, encryptedPart, &lastPartLen, &input[24*i], inputLen - 24*i);  R_SealFinal (context, encryptedPart + lastPartLen, &len);  lastPartLen += len;  R_EncodePEMBlock (&output[32*i], &len, encryptedPart, lastPartLen);  *outputLen = 32*i + len;  /* Zeroize sensitive information.   */  R_memset ((POINTER)encryptedPart, 0, sizeof (encryptedPart));}static int DecryptPEMUpdateFinal (context, output, outputLen, input, inputLen)R_ENVELOPE_CTX *context;unsigned char *output;                          /* decoded, decrypted block */unsigned int *outputLen;                                /* length of output */unsigned char *input;                           /* encrypted, encoded block */unsigned int inputLen;                                            /* length */{  int status;  unsigned char encryptedPart[24];  unsigned int i, len;    do {    /* Choose a buffer size of 24 bytes to hold the temporary decoded output         which will be decrypted.       Decode and decrypt as many 32-byte input blocks as possible.     */    *outputLen = 0;    for (i = 0; i < inputLen/32; i++) {      /* len is always 24 */      if ((status = R_DecodePEMBlock           (encryptedPart, &len, &input[32*i], 32)) != 0)        break;      /* Excpect no error return */      R_OpenUpdate (context, output, &len, encryptedPart, 24);      output += len;      *outputLen += len;    }    if (status)      break;    /* Decode the last part */      if ((status = R_DecodePEMBlock         (encryptedPart, &len, &input[32*i], inputLen - 32*i)) != 0)      break;    /* Decrypt the last part.     */    R_OpenUpdate (context, output, &len, encryptedPart, len);    output += len;    *outputLen += len;    if ((status = R_OpenFinal (context, output, &len)) != 0)      break;    *outputLen += len;  } while (0);  /* Zeroize sensitive information.   */  R_memset ((POINTER)&context, 0, sizeof (context));  R_memset ((POINTER)encryptedPart, 0, sizeof (encryptedPart));  return (status);}static int CipherInit (context, encryptionAlgorithm, key, iv, encrypt)R_ENVELOPE_CTX *context;int encryptionAlgorithm;unsigned char *key;                                              /* DES key */unsigned char *iv;                             /* DES initialization vector */int encrypt;                     /* encrypt flag (1 = encrypt, 0 = decrypt) */{  switch (encryptionAlgorithm) {  case EA_DES_CBC:    DES_CBCInit (&context->cipherContext.des, key, iv, encrypt);    return (0);  case EA_DESX_CBC:    DESX_CBCInit (&context->cipherContext.desx, key, iv, encrypt);    return (0);  case EA_DES_EDE2_CBC:  case EA_DES_EDE3_CBC:    DES3_CBCInit (&context->cipherContext.des3, key, iv, encrypt);    return (0);  default:    return (RE_ENCRYPTION_ALGORITHM);  }}/* Assume len is a multiple of 8. */static void CipherUpdate (context, output, input, len)R_ENVELOPE_CTX *context;unsigned char *output;                                      /* output block */unsigned char *input;                                        /* input block */unsigned int len;                      /* length of input and output blocks */{  if (context->encryptionAlgorithm == EA_DES_CBC)    DES_CBCUpdate (&context->cipherContext.des, output, input, len);  else if (context->encryptionAlgorithm == EA_DESX_CBC)    DESX_CBCUpdate (&context->cipherContext.desx, output, input, len);  else    DES3_CBCUpdate (&context->cipherContext.des3, output, input, len);}static void CipherRestart (context)R_ENVELOPE_CTX *context;{  if (context->encryptionAlgorithm == EA_DES_CBC)    DES_CBCRestart (&context->cipherContext.des);  else if (context->encryptionAlgorithm == EA_DESX_CBC)    DESX_CBCRestart (&context->cipherContext.desx);  else    DES3_CBCRestart (&context->cipherContext.des3);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧洲精品一区二区精品久久久| 欧美成人video| 久久疯狂做爰流白浆xx| 欧美激情在线看| 欧美丝袜自拍制服另类| 国产成人亚洲综合a∨婷婷图片 | 黄色日韩网站视频| 国产精品三级电影| 欧美酷刑日本凌虐凌虐| 成人激情动漫在线观看| 麻豆精品视频在线观看视频| 亚洲情趣在线观看| 中文字幕精品一区二区精品绿巨人| 国产一区二区主播在线| 亚洲电影欧美电影有声小说| 国产精品沙发午睡系列990531| 精品亚洲成av人在线观看| 亚洲午夜精品久久久久久久久| 一本大道久久a久久综合| 国产精品456| 美国十次了思思久久精品导航| 91精品国产综合久久久久久| 成人不卡免费av| 国产一区二区在线视频| 奇米777欧美一区二区| 亚洲国产人成综合网站| 亚洲人精品一区| 国产精品久久久久久久久动漫 | 一区二区三区91| 国产精品久久久久永久免费观看| 成人毛片视频在线观看| 国产一区二区三区免费看| 欧美aaaaa成人免费观看视频| 欧美电影精品一区二区| 欧美自拍偷拍一区| 日本韩国视频一区二区| 91网页版在线| 91丨九色丨蝌蚪丨老版| 99久久精品久久久久久清纯| 成人激情动漫在线观看| 91无套直看片红桃| 色狠狠一区二区| 欧美体内she精视频| 欧美视频完全免费看| 在线观看欧美精品| 欧美性色黄大片手机版| 欧美视频在线一区| 欧美三级午夜理伦三级中视频| 久久精品久久综合| 奇米影视一区二区三区| 久草精品在线观看| 国产成人免费视频网站| 菠萝蜜视频在线观看一区| 91丝袜美女网| 欧美视频日韩视频| 日韩欧美国产综合在线一区二区三区 | 日本高清不卡aⅴ免费网站| 99久久久久久| 在线视频你懂得一区| 欧美午夜影院一区| 日韩欧美一级二级三级久久久| 不卡一区二区三区四区| 成人免费不卡视频| 欧美性videosxxxxx| 日韩亚洲欧美一区二区三区| 日韩一级黄色片| 精品成人一区二区| 国产精品日韩成人| 亚洲影院免费观看| 美女网站色91| 国产成人av网站| 在线视频亚洲一区| 精品少妇一区二区三区日产乱码 | 亚洲图片欧美综合| 麻豆精品在线播放| aaa欧美日韩| 91精品在线观看入口| 欧美成va人片在线观看| 国产精品美女久久久久aⅴ| 亚洲一区二区免费视频| 精品一区二区久久| 91亚洲国产成人精品一区二区三| 国产精品99久| 成人动漫一区二区在线| 91国在线观看| 精品国产一区二区三区忘忧草 | 老司机午夜精品| 懂色av中文字幕一区二区三区| 亚洲国产综合91精品麻豆| 老色鬼精品视频在线观看播放| 亚洲成年人网站在线观看| 国产麻豆精品在线| 欧洲精品一区二区三区在线观看| 国产mv日韩mv欧美| 欧美日韩精品综合在线| 久久久久久日产精品| 亚洲另类春色校园小说| 狠狠色丁香久久婷婷综合_中| 开心九九激情九九欧美日韩精美视频电影 | www激情久久| 亚洲国产一区视频| 国产精品一区二区三区99| 欧美私人免费视频| 国产精品美女久久久久久久| 久久综合综合久久综合| 欧美又粗又大又爽| 国产精品国产自产拍高清av| 捆绑变态av一区二区三区| 欧美日韩一区二区三区不卡| 国产精品免费av| 韩国av一区二区| 在线播放国产精品二区一二区四区| 欧美肥妇bbw| 亚洲乱码日产精品bd| 国内精品自线一区二区三区视频| 精品一区二区日韩| 9191久久久久久久久久久| 一区二区久久久| 色婷婷综合久久久中文字幕| 久久精品免视看| 青青草原综合久久大伊人精品| 乱一区二区av| 91精品蜜臀在线一区尤物| 一区二区三区在线视频观看58 | 亚洲精品va在线观看| 成人综合在线网站| 久久久99精品免费观看| 婷婷一区二区三区| 欧美少妇xxx| 一级精品视频在线观看宜春院| 午夜欧美视频在线观看| 欧日韩精品视频| 亚洲精品成a人| 欧洲在线/亚洲| 玉米视频成人免费看| 日本国产一区二区| 亚洲一区二区三区四区的 | 亚洲一二三区在线观看| 一本大道av一区二区在线播放| 在线91免费看| 亚洲成a人在线观看| 欧美日韩一区二区在线观看 | 国产高清在线精品| 国产人妖乱国产精品人妖| 国产999精品久久久久久绿帽| 一本到不卡精品视频在线观看| 欧美日韩一级视频| 亚洲成人先锋电影| 91精品久久久久久久91蜜桃| 久久精品国产秦先生| 久久久久久久综合日本| 国产成人一区在线| 国产精品久久久久久福利一牛影视 | 精品亚洲免费视频| 久久久影视传媒| 成人av中文字幕| 国产精品乱码久久久久久| 一本一本久久a久久精品综合麻豆| 欧美一级欧美三级在线观看 | 性做久久久久久免费观看| 欧美巨大另类极品videosbest| 欧美韩国日本综合| 91香蕉视频mp4| 视频一区二区三区入口| 精品国产一区二区三区忘忧草 | 日本欧美一区二区| 久久亚洲二区三区| 国产不卡在线一区| 亚洲欧美日韩一区二区 | 国产成人免费视频一区| 亚洲人成在线观看一区二区| 欧美日韩免费一区二区三区视频| 国产精品日韩精品欧美在线| 一本大道av一区二区在线播放| 久久久久久久久久久久久女国产乱| 午夜精品久久久久久不卡8050| 9久草视频在线视频精品| 一区二区欧美在线观看| 精品欧美久久久| 91丝袜美腿高跟国产极品老师| 国产精品动漫网站| 在线综合视频播放| 风流少妇一区二区| 亚洲国产视频一区| 国产午夜久久久久| 欧美日韩aaa| 成人激情av网| 精品中文字幕一区二区 | 亚洲天堂网中文字| 日韩欧美专区在线| 91毛片在线观看| 国产乱人伦精品一区二区在线观看| 日韩欧美中文一区二区| 91麻豆福利精品推荐| 日韩高清一区在线| 亚洲六月丁香色婷婷综合久久 | 2023国产精品自拍| 欧美日韩午夜精品| 不卡一区二区在线| 国产一区二区久久|