cherry-picked mozilla NSS upstream changes (to rev f7a4c771997e, which is on par with 3.16.1 but without windows rand() changes):

9934c8faef29, 3c3b381c4865, 5a67f6beee9a, 1b1eb6d77728, a8b668fd72f7, bug962760, bug743700, bug857304, bug972653, bug972450, bug971358, bug903885, bug977073, bug976111, bug949939, bug947653, bug947572, bug903885, bug979106, bug966596, bug979004, bug979752, bug980848, bug938369, bug981170, bug668130, bug974693, bug975056, bug979132, bug370717, bug979070, bug985070, bug900067, bug977673, bug519255, bug989558, bug557299, bug987263, bug369802, a751a5146718, bug992343, bug952572, bug979703, bug994883, bug994869, bug993489, bug984608, bug977869, bug667371, bug672828, bug793347, bug977869
This commit is contained in:
roytam1 2018-07-10 23:07:31 +08:00
parent cc3fbb8f08
commit 30d33aa8e8
333 changed files with 6964 additions and 1515 deletions

View File

@ -61,6 +61,9 @@ endif
ifdef BUILD_OPT
NSPR_CONFIGURE_OPTS += --disable-debug --enable-optimize
endif
ifdef USE_X32
NSPR_CONFIGURE_OPTS += --enable-x32
endif
ifdef USE_64
NSPR_CONFIGURE_OPTS += --enable-64bit
endif

View File

@ -19,8 +19,6 @@ ARCH=$(uname -s)
ulimit -c unlimited 2> /dev/null
export NSS_ENABLE_ECC=1
export NSS_ECC_MORE_THAN_SUITE_B=1
export NSPR_LOG_MODULES="pkix:1"
#export JAVA_HOME_32=

View File

@ -288,7 +288,7 @@ prepare()
mv ${OUTPUTDIR} ${OUTPUTDIR}.last >/dev/null 2>&1
mkdir -p ${OUTPUTDIR}
if [ -n "${NSS_ENABLE_ECC}" -a -n "${NSS_ECC_MORE_THAN_SUITE_B}" ]; then
if [ -z "${NSS_DISABLE_ECC}" -a -n "${NSS_ECC_MORE_THAN_SUITE_B}" ]; then
cd ${HGDIR}/nss
ECF="lib/freebl/ecl/ecl-curve.h"
print_log "hg revert -r NSS_3_11_1_RTM ${ECF}"

View File

@ -35,13 +35,24 @@ output_binary (void *arg, const unsigned char *obuf, PRInt32 size)
return nb;
}
static PRBool
isBase64Char(char c)
{
return ((c >= 'A' && c <= 'Z')
|| (c >= 'a' && c <= 'z')
|| (c >= '0' && c <= '9')
|| c == '+'
|| c == '/'
|| c == '=');
}
static SECStatus
decode_file(FILE *outFile, FILE *inFile)
{
NSSBase64Decoder *cx;
int nb;
SECStatus status = SECFailure;
char ibuf[4096];
const char *ptr;
cx = NSSBase64Decoder_Create(output_binary, outFile);
if (!cx) {
@ -50,9 +61,7 @@ decode_file(FILE *outFile, FILE *inFile)
for (;;) {
if (feof(inFile)) break;
nb = fread(ibuf, 1, sizeof(ibuf), inFile);
if (nb != sizeof(ibuf)) {
if (nb == 0) {
if (!fgets(ibuf, sizeof(ibuf), inFile)) {
if (ferror(inFile)) {
PORT_SetError(SEC_ERROR_IO);
goto loser;
@ -60,9 +69,21 @@ decode_file(FILE *outFile, FILE *inFile)
/* eof */
break;
}
for (ptr = ibuf; *ptr; ++ptr) {
char c = *ptr;
if (c == '\n' || c == '\r') {
break; /* found end of line */
}
if (!isBase64Char(c)) {
ptr = ibuf; /* ignore line */
break;
}
}
if (ibuf == ptr) {
continue; /* skip empty or non-base64 line */
}
status = NSSBase64Decoder_Update(cx, ibuf, nb);
status = NSSBase64Decoder_Update(cx, ibuf, ptr-ibuf);
if (status != SECSuccess) goto loser;
}
@ -99,10 +120,11 @@ int main(int argc, char **argv)
progName = progName ? progName+1 : argv[0];
/* Parse command line arguments */
optstate = PL_CreateOptState(argc, argv, "i:o:");
optstate = PL_CreateOptState(argc, argv, "?hi:o:");
while ((status = PL_GetNextOpt(optstate)) == PL_OPT_OK) {
switch (optstate->option) {
case '?':
case 'h':
Usage(progName);
break;

View File

@ -21,7 +21,7 @@
#include "secoid.h"
#include "nssutil.h"
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
#include "ecl-curve.h"
SECStatus EC_DecodeParams(const SECItem *encodedParams,
ECParams **ecparams);
@ -133,7 +133,7 @@ static void Usage()
PRINTUSAGE(progName, "-S -m mode", "Sign a buffer");
PRINTUSAGE("", "", "[-i plaintext] [-o signature] [-k key]");
PRINTUSAGE("", "", "[-b bufsize]");
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
PRINTUSAGE("", "", "[-n curvename]");
#endif
PRINTUSAGE("", "", "[-p repetitions | -5 time_interval] [-4 th_num]");
@ -141,7 +141,7 @@ static void Usage()
PRINTUSAGE("", "-i", "file which contains input buffer");
PRINTUSAGE("", "-o", "file for signature");
PRINTUSAGE("", "-k", "file which contains key");
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
PRINTUSAGE("", "-n", "name of curve for EC key generation; one of:");
PRINTUSAGE("", "", " sect163k1, nistk163, sect163r1, sect163r2,");
PRINTUSAGE("", "", " nistb163, sect193r1, sect193r2, sect233k1, nistk233,");
@ -390,7 +390,7 @@ dsakey_from_filedata(SECItem *filedata)
return key;
}
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
static ECPrivateKey *
eckey_from_filedata(SECItem *filedata)
{
@ -544,7 +544,7 @@ getECParams(const char *curve)
return ecparams;
}
#endif /* NSS_ENABLE_ECC */
#endif /* NSS_DISABLE_ECC */
static void
dump_pqg(PQGParams *pqg)
@ -562,7 +562,7 @@ dump_dsakey(DSAPrivateKey *key)
SECU_PrintInteger(stdout, &key->privateValue, "PRIVATE VALUE:", 0);
}
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
static void
dump_ecp(ECParams *ecp)
{
@ -651,7 +651,7 @@ typedef enum {
bltestRSA, /* Public Key Ciphers */
bltestRSA_OAEP, /* . (Public Key Enc.) */
bltestRSA_PSS, /* . (Public Key Sig.) */
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
bltestECDSA, /* . (Public Key Sig.) */
#endif
bltestDSA, /* . (Public Key Sig.) */
@ -690,7 +690,7 @@ static char *mode_strings[] =
"rsa",
"rsa_oaep",
"rsa_pss",
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
"ecdsa",
#endif
/*"pqg",*/
@ -744,7 +744,7 @@ typedef struct
PQGParams *pqg;
} bltestDSAParams;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
typedef struct
{
char *curveName;
@ -763,7 +763,7 @@ typedef struct
union {
bltestRSAParams rsa;
bltestDSAParams dsa;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
bltestECDSAParams ecdsa;
#endif
} cipherParams;
@ -1266,7 +1266,7 @@ dsa_verifyDigest(void *cx, SECItem *output, const SECItem *input)
return DSA_VerifyDigest((DSAPublicKey *)params->pubKey, output, input);
}
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
SECStatus
ecdsa_signDigest(void *cx, SECItem *output, const SECItem *input)
{
@ -1720,7 +1720,7 @@ bltest_dsa_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
return SECSuccess;
}
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
SECStatus
bltest_ecdsa_init(bltestCipherInfo *cipherInfo, PRBool encrypt)
{
@ -2077,7 +2077,7 @@ finish:
SECStatus
pubkeyInitKey(bltestCipherInfo *cipherInfo, PRFileDesc *file,
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
int keysize, int exponent, char *curveName)
#else
int keysize, int exponent)
@ -2090,7 +2090,7 @@ pubkeyInitKey(bltestCipherInfo *cipherInfo, PRFileDesc *file,
RSAPrivateKey **rsaKey = NULL;
bltestDSAParams *dsap;
DSAPrivateKey **dsaKey = NULL;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
SECItem *tmpECParamsDER;
ECParams *tmpECParams = NULL;
SECItem ecSerialize[3];
@ -2132,7 +2132,7 @@ pubkeyInitKey(bltestCipherInfo *cipherInfo, PRFileDesc *file,
dsap->keysize = (*dsaKey)->params.prime.len*8;
}
break;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
case bltestECDSA:
ecKey = (ECPrivateKey **)&asymk->privKey;
if (curveName != NULL) {
@ -2244,7 +2244,7 @@ cipherInit(bltestCipherInfo *cipherInfo, PRBool encrypt)
}
return bltest_dsa_init(cipherInfo, encrypt);
break;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
case bltestECDSA:
if (encrypt) {
SECITEM_AllocItem(cipherInfo->arena, &cipherInfo->output.buf,
@ -2494,7 +2494,7 @@ cipherFinish(bltestCipherInfo *cipherInfo)
case bltestRSA_PSS: /* will be freed with it. */
case bltestRSA_OAEP:
case bltestDSA:
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
case bltestECDSA:
#endif
case bltestMD2: /* hash contexts are ephemeral */
@ -2674,7 +2674,7 @@ print_td:
fprintf(stdout, "%8d", info->params.asymk.cipherParams.dsa.keysize);
}
break;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
case bltestECDSA:
if (td) {
fprintf(stdout, "%12s", "ec_curve");
@ -2906,7 +2906,7 @@ get_params(PLArenaPool *arena, bltestParams *params,
sprintf(filename, "%s/tests/%s/%s%d", testdir, modestr, "ciphertext",j);
load_file_data(arena, &params->asymk.sig, filename, bltestBase64Encoded);
break;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
case bltestECDSA:
sprintf(filename, "%s/tests/%s/%s%d", testdir, modestr, "key", j);
load_file_data(arena, &params->asymk.key, filename, bltestBase64Encoded);
@ -2938,46 +2938,62 @@ SECStatus
verify_self_test(bltestIO *result, bltestIO *cmp, bltestCipherMode mode,
PRBool forward, SECStatus sigstatus)
{
int res;
PRBool equal;
char *modestr = mode_strings[mode];
res = SECITEM_CompareItem(&result->pBuf, &cmp->buf);
equal = SECITEM_ItemsAreEqual(&result->pBuf, &cmp->buf);
if (is_sigCipher(mode)) {
if (forward) {
if (res == 0) {
if (equal) {
printf("Signature self-test for %s passed.\n", modestr);
} else {
printf("Signature self-test for %s failed!\n", modestr);
}
return equal ? SECSuccess : SECFailure;
} else {
if (sigstatus == SECSuccess) {
printf("Verification self-test for %s passed.\n", modestr);
} else {
printf("Verification self-test for %s failed!\n", modestr);
}
}
return sigstatus;
}
} else if (is_hashCipher(mode)) {
if (res == 0) {
if (equal) {
printf("Hash self-test for %s passed.\n", modestr);
} else {
printf("Hash self-test for %s failed!\n", modestr);
}
} else {
if (forward) {
if (res == 0) {
if (equal) {
printf("Encryption self-test for %s passed.\n", modestr);
} else {
printf("Encryption self-test for %s failed!\n", modestr);
}
} else {
if (res == 0) {
if (equal) {
printf("Decryption self-test for %s passed.\n", modestr);
} else {
printf("Decryption self-test for %s failed!\n", modestr);
}
}
}
return (res != 0);
return equal ? SECSuccess : SECFailure;
}
static SECStatus
ReadFileToItem(SECItem *dst, const char *filename)
{
PRFileDesc *file;
SECStatus rv;
file = PR_Open(filename, PR_RDONLY, 00660);
if (!file) {
return SECFailure;
}
rv = SECU_FileToItem(dst, file);
PR_Close(file);
return rv;
}
static SECStatus
@ -2991,19 +3007,16 @@ blapi_selftest(bltestCipherMode *modes, int numModes, int inoff, int outoff,
int i, j, nummodes, numtests;
char *modestr;
char filename[256];
PRFileDesc *file;
PLArenaPool *arena;
SECItem item;
PRBool finished;
SECStatus rv = SECSuccess, srv;
PORT_Memset(&cipherInfo, 0, sizeof(cipherInfo));
arena = PORT_NewArena(BLTEST_DEFAULT_CHUNKSIZE);
cipherInfo.arena = arena;
finished = PR_FALSE;
nummodes = (numModes == 0) ? NUMMODES : numModes;
for (i=0; i < nummodes && !finished; i++) {
for (i=0; i < nummodes; i++) {
if (numModes > 0)
mode = modes[i];
else
@ -3017,13 +3030,11 @@ blapi_selftest(bltestCipherMode *modes, int numModes, int inoff, int outoff,
params = &cipherInfo.params;
/* get the number of tests in the directory */
sprintf(filename, "%s/tests/%s/%s", testdir, modestr, "numtests");
file = PR_Open(filename, PR_RDONLY, 00660);
if (!file) {
fprintf(stderr, "%s: File %s does not exist.\n", progName,filename);
return SECFailure;
if (ReadFileToItem(&item, filename) != SECSuccess) {
fprintf(stderr, "%s: Cannot read file %s.\n", progName, filename);
rv = SECFailure;
continue;
}
rv = SECU_FileToItem(&item, file);
PR_Close(file);
/* loop over the tests in the directory */
numtests = 0;
for (j=0; j<item.len; j++) {
@ -3048,8 +3059,6 @@ blapi_selftest(bltestCipherMode *modes, int numModes, int inoff, int outoff,
** Align the input buffer (plaintext) according to request
** then perform operation and compare to ciphertext
*/
/* XXX for now */
rv = SECSuccess;
if (encrypt) {
bltestCopyIO(arena, &cipherInfo.input, &pt);
misalignBuffer(arena, &cipherInfo.input, inoff);
@ -3059,11 +3068,10 @@ blapi_selftest(bltestCipherMode *modes, int numModes, int inoff, int outoff,
rv |= cipherDoOp(&cipherInfo);
rv |= cipherFinish(&cipherInfo);
rv |= verify_self_test(&cipherInfo.output,
&ct, mode, PR_TRUE, 0);
&ct, mode, PR_TRUE, SECSuccess);
/* If testing hash, only one op to test */
if (is_hashCipher(mode))
continue;
/*if (rv) return rv;*/
if (is_sigCipher(mode)) {
/* Verify operations support detached signature files. For
** consistency between tests that run Sign/Verify back to
@ -3079,8 +3087,6 @@ blapi_selftest(bltestCipherMode *modes, int numModes, int inoff, int outoff,
}
if (!decrypt)
continue;
/* XXX for now */
rv = SECSuccess;
/* Reverse Operation (Decrypt/Verify)
** Align the input buffer (ciphertext) according to request
** then perform operation and compare to plaintext
@ -3100,7 +3106,6 @@ blapi_selftest(bltestCipherMode *modes, int numModes, int inoff, int outoff,
rv |= cipherFinish(&cipherInfo);
rv |= verify_self_test(&cipherInfo.output,
&pt, mode, PR_FALSE, srv);
/*if (rv) return rv;*/
}
}
return rv;
@ -3128,7 +3133,7 @@ dump_file(bltestCipherMode mode, char *filename)
load_file_data(arena, &keydata, filename, bltestBase64Encoded);
key = dsakey_from_filedata(&keydata.buf);
dump_dsakey(key);
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
} else if (mode == bltestECDSA) {
ECPrivateKey *key;
load_file_data(arena, &keydata, filename, bltestBase64Encoded);
@ -3373,7 +3378,7 @@ enum {
opt_Key,
opt_HexWSpc,
opt_Mode,
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
opt_CurveName,
#endif
opt_Output,
@ -3426,7 +3431,7 @@ static secuCommandFlag bltest_options[] =
{ /* opt_Key */ 'k', PR_TRUE, 0, PR_FALSE },
{ /* opt_HexWSpc */ 'l', PR_FALSE, 0, PR_FALSE },
{ /* opt_Mode */ 'm', PR_TRUE, 0, PR_FALSE },
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
{ /* opt_CurveName */ 'n', PR_TRUE, 0, PR_FALSE },
#endif
{ /* opt_Output */ 'o', PR_TRUE, 0, PR_FALSE },
@ -3461,7 +3466,7 @@ int main(int argc, char **argv)
bltestCipherInfo *cipherInfoListHead, *cipherInfo;
bltestIOMode ioMode;
int bufsize, exponent, curThrdNum;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
char *curveName = NULL;
#endif
int i, commandsEntered;
@ -3605,7 +3610,7 @@ int main(int argc, char **argv)
rv = blapi_selftest(modesToTest, numModesToTest, inoff, outoff,
encrypt, decrypt);
PORT_Free(cipherInfo);
return rv;
return rv == SECSuccess ? 0 : 1;
}
/* Do FIPS self-test */
@ -3695,7 +3700,7 @@ int main(int argc, char **argv)
else
exponent = 65537;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
if (bltest.options[opt_CurveName].activated)
curveName = PORT_Strdup(bltest.options[opt_CurveName].arg);
else
@ -3783,7 +3788,7 @@ int main(int argc, char **argv)
file = PR_Open("tmp.key", PR_WRONLY|PR_CREATE_FILE, 00660);
}
params->key.mode = bltestBase64Encoded;
#ifdef NSS_ENABLE_ECC
#ifndef NSS_DISABLE_ECC
pubkeyInitKey(cipherInfo, file, keysize, exponent, curveName);
#else
pubkeyInitKey(cipherInfo, file, keysize, exponent);

View File

@ -0,0 +1 @@
AzZ2PpZtkllaVnzJzlN/Xg==

View File

@ -0,0 +1,3 @@
eykx9YVfcXFF4A8VKp9HlDWbH/yz5V9ZTjMJi1HCOmx0oGwdlP3tf9KuQsfbesrv
WETLM67dxoUlhe0AIKZpnSy1OAnO/RaRSM5CKSr6sGNEOXgwbFgsGLnODaPQhM5N
PEgs/Y/PGoUITon7iLQKCE1elyRm0HZmEm+3YfhAePI=

View File

@ -0,0 +1,3 @@
sJUS8+/57Q2FiQmDpz2tu3w2eNUlgb5kqKj8WG9JDyUhKXpHigWYBA69D1UJ+vsJ
afnZ5gDq7zOxuT7tmWh7Fn+JpQZarEOc5G87jSLTCGXmTkXvjNMLaYQ1OoRKEcjN
YNug6IZrPuMNJLP6imQ7MoNT4GAQ+oJzyP1U7woraTDlUgquXNWQL5uGozWSykNl

View File

@ -0,0 +1,4 @@
a+ihKABFWjIFOIU+DLoxvS2A6gyFFkpMXCYa5IVBfZPv/i68DQoLUdbqGGM9IQz2
PAxN28J2B/LoHtkRMZHvhtVvO5m+bEFaQVApn7hGznFgtAtjuvEXnRknWi6DaYN2
0ouSVIxo4G5tmU4sFQHtKXAU5wLN7+4vZWRHcGAJYU2AHeHKr3P4t/pWzxupS2MZ
M7vld2JDgIUPEXQ1oDVbKw==

View File

@ -0,0 +1 @@
UdRHefkNQKgASCdsA1y0nKKke8ubnPcnC5FEeTeH1T8=

View File

@ -0,0 +1,2 @@
1fVYl2C/nHYiKP3iNt4fot0trUSNs/qb4MQZbv1Go1yE3RrHfZ21jJWRjLMXpkMK
CNL7ao6LDxybcsejRNw0nw==

View File

@ -0,0 +1,2 @@
dTlZdL0ys2ZWVKbI45a4iuNLEjV1hyp6tofY52tG35EailkM0B0vXDML46Zibp3T
ql4Q7RTo/4KYEbb+1Q8/UzykOFocvKePXEdE5Q8vg1kWXCSF0TJOdsPq52oMysYp

View File

@ -0,0 +1,3 @@
gVjiFCDyW1nWrpQ/ocvyHwLpefQZ2rASanIbfu9Vvumtl/XM/30jkFe7wZqMN4FC
92cvHV5+F9e+vLAHDoNVys5mYBcaU7YYFq6CSm72nORwtv/TtbtLQ4h02R0nhU07
byWGDTholY3jMH1isTOb3duKMYwM4PM8F8rw6fYECCA=

View File

@ -0,0 +1,3 @@
km2ySMwbog8MV2MafIrvCU95GTe5BZSeNGAkDov6b6SDEVobMQtuQ2nK68UmKIg3
ex3apYAOpJaivf8PmhAx5xKcmiDjViHn8Li6yg2HAw8q58qFk8hZlnegb9SyYAnq
0I/srCTKqc8srTtHDIInQVp7Hg8uqz+tltcKIJyLsmxidnfiUxuUNcpuPERNGVtf

View File

@ -0,0 +1,4 @@
yCzyxHbeqMtqbmB6QNLwORvoLqnshKU3poIPmvuZe3Y5fQBUJPqmp03E6MeqSokA
aQ+JS20dyoBnU5PSJDrax2LxWTAeNX6YtyR2IxDNWnuv4cKgMNukb9k6n9uJzBMs
qcF9xyAx7Ggi7lqdmdvKZseEwBsIhcu2LinZeAGSfsQVpdIVFY0yX57miUN60bdo
StM8DZJzlFGsh/Of+MMbhA==

View File

@ -0,0 +1 @@
L6Dfciqf07ZMsY+ys9tV/yJnQidXKJQT+PZXUHQSpkw=

View File

@ -0,0 +1 @@
qaFjG/SZaVTrwJOVeyNFiQ==

View File

@ -0,0 +1,2 @@
BdXHdylCGwi3N+QRGfpEONH1cMx3Kk1sPff/7aA4TvhCiM43/ExMfRElpJmwUTZM
OJ/WOb3aZH2qO9rasutVlA==

View File

@ -0,0 +1,2 @@
rD1tuv4uD3QGMv2eggv2BEzVsVUcu5zAPAslw5zLfzO4Oqz8pAoyZfK7/4eRU0SK
ysuI/Ps7t7EP5GOmjAEJ8Cg4Lj5VexrfAu1kira7iV3wIF0m67+ppf2M69jkvuPc

View File

@ -0,0 +1,3 @@
kLe5YwojePU/UBq3vv8DkVUAgHG8hDjniZMs/T6xKZGVRl5mM4SUY/20Q3Unji/b
ExCCHmSSz4D/Fct3JQn7Qm867uJ71JOIgv0q5rW9nZH6SkOxe7Q5675ZwEIxAWOo
Kl/lOIeW7uNaGBoScfAL4puFLY+nWbrQH/RnjwEFlM0=

View File

@ -0,0 +1,3 @@
AlSyNGO8q+xaOV63TI+w6xN6B7xvXp9h7AsFfeMFcU+PopQiHJGhWcMVk5uB4wDu
kCGS7F8VJUQo2HcveTJOxDKYyiHACzcCc+5eXtkOQ++h4FpdFxIJ/jT58pI326Km
cmZQ/TsTIXR9EgiGPGw8az4th5q18leC8Iuo8qu+Y+C+20oifoGvs2u2ZFUINW00

View File

@ -0,0 +1,4 @@
/Fhz5Q3o+vTGuEunB7CFTp25qy6ffXB/u6M4xoQ6GPxvrOuvZj0mKW+zKbTSbxhJ
THngnneWR/m6+odIljDXn0MBYQwjAMGdvzFIt8rIxPSUQQJ1TzMukrb3xedbxhee
uHegeNRxkAkCF0TBTxP9KlWiucRNGAAGhahFpPYyx8VqdzBu+maiTQXQiNzXwT/i
T8RHJ1ll255NN/vJMERIzQ==

View File

@ -0,0 +1 @@
J1z8BBPYzLcFE8OFmx0Pcg==

View File

@ -0,0 +1 @@
ybgTX/G1rcQT39BTshvZbQ==

View File

@ -0,0 +1 @@
XJ2ETtRvmIUIXl1qT5TH1w==

View File

@ -0,0 +1 @@
qf91vXz2YT03Mcd8O20MBA==

View File

@ -0,0 +1 @@
xNxh2XJZZ6MCAQSpc48jhoUnzoOaqxdS/YvblagsTQA=

View File

@ -0,0 +1,2 @@
Gblgl3LGPzOGCL9utSyhC+ZQl/icHgkFxCQB/Ud5GuLFRAstRzEWyni9n/L7YBXP
0xZSTq59y5Wuc46+roSkZw==

View File

@ -0,0 +1,2 @@
O4YRv8SXPFzY6YKwc7MxhM0mEQFZFy5EmI61/1ZhoeFvrWclj8v+5VRpJnoS3DdI
k7TjUz029WNMMJVYNZbxNaqM0RONyJi8VlHuNakuv4mrautTZmU7xgpw4AdPwR7+

Binary file not shown.

View File

@ -0,0 +1 @@
檠4馬\ミョ凌XS,エ刀

View File

@ -0,0 +1 @@
$_&[v腚马誓

View File

@ -0,0 +1 @@
╩К/╚╢H╞└≈√$Jв

View File

@ -0,0 +1 @@
<EFBFBD>f~庚y`<60>[」<>

View File

@ -0,0 +1 @@
戯ノ 彝惠9淆ホ<8

View File

@ -0,0 +1 @@
6κΈƒ―ο“lΓ<EFBFBD>c(FΝ

View File

@ -0,0 +1 @@
闳浶椕<EFBFBD>鯫H佦m库

View File

@ -0,0 +1 @@
<EFBFBD><EFBFBD>(3<>E <1D><17><><EFBFBD><

View File

@ -0,0 +1 @@
$@Ђ8,Ка{¶cUБ

View File

@ -0,0 +1 @@
<EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><EFBFBD>7<EFBFBD>Equ<EFBFBD>W<><57>

Binary file not shown.

View File

@ -0,0 +1 @@
ÀÍ+ëÌ»lI ÕH*ÇVè

View File

@ -0,0 +1,2 @@
³Ë—¨
S™¸ÂE ;“•

View File

@ -0,0 +1 @@
LïüYcÔY`&u>I

Binary file not shown.

View File

@ -0,0 +1 @@
же<EFBFBD>ИЯыгЖъЁЕ?~с

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
ェムX<ルe羹/ 40ミeサ

View File

@ -0,0 +1 @@
È ]‹± `iŸ|—J 

View File

@ -0,0 +1 @@
e<EFBFBD><EFBFBD>60<EFBFBD>ָB<02><EFBFBD>z

Binary file not shown.

View File

@ -0,0 +1 @@
ÄÊ1ùEŽ)©%ìU<C3AC>x

View File

@ -0,0 +1 @@
<EFBFBD>}qーMnーjhワjq<6A>

View File

@ -0,0 +1 @@
,A7QĂ'0W Ł6xk

View File

@ -0,0 +1 @@
<EFBFBD>X<1A>s<EFBFBD><73><1C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Q<11>.k!

View File

@ -0,0 +1 @@
{±{M÷…i~¬Ï–˜âËuæy|é5Ë

View File

@ -0,0 +1 @@
ãþÌuðZ ³ƒßÓ‰£Ó<ɸT³²TÀô

Binary file not shown.

View File

@ -0,0 +1 @@
<EFBFBD><EFBFBD><EFBFBD><g<>)N<><4E>f<EFBFBD><66><EFBFBD>OE<4F>(<28><><EFBFBD><EFBFBD>3<EFBFBD>

View File

@ -0,0 +1 @@
ćJŞUWíÁk,jMK^î

View File

@ -0,0 +1 @@
ÜâlkLû(eÚNìÒÏþlßC_w´`gÔ<E280BA>®

Binary file not shown.

View File

@ -0,0 +1 @@
“˙cqŻj[Ž<>¬ßZ=KŻŃŻµsľzŢž†ćcĺ

View File

@ -0,0 +1,2 @@
s¸תנ 3¬™…\צשיה…i
Y₪†<E282AA>MֿHׂת®*

View File

@ -0,0 +1 @@
E<EFBFBD>g<EFBFBD>!- <20><><EFBFBD>9 eX-<2D><><EFBFBD><EFBFBD><EFBFBD>"<22><><EFBFBD>8<EFBFBD><38>R&

View File

@ -0,0 +1 @@
ÒA-°„]„ås+½d)WG;<3B>û™Êÿpç ÁÛì‰

View File

@ -0,0 +1 @@
HľY~c,w#$ČÓúśZžÍě] ;ţĂvĹS+

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
<EFBFBD><EFBFBD><EFBFBD>Wn<12> <0A>><3E><><EFBFBD>+<2B>9

View File

@ -0,0 +1 @@
»η·ΊOρ®|4ώF^

View File

@ -0,0 +1,11 @@
#!/bin/sh
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
do
file="test$i.txt"
grep "KEY = " $file | sed -e 's;KEY = ;;' | hex > key$i
grep "IV = " $file | sed -e 's;IV = ;;' | hex > iv$i
grep "PLAINTEXT = " $file | sed -e 's;PLAINTEXT = ;;' | hex > plaintext$i
grep "CIPHERTEXT = " $file | sed -e 's;CIPHERTEXT = ;;' | hex > ciphertext$i.bin
btoa < ciphertext$i.bin > ciphertext$i
rm ciphertext$i.bin
done

View File

@ -1 +1 @@
1
25

View File

@ -0,0 +1 @@
<EFBFBD>D<EFBFBD><EFBFBD><<3C>'<27><>]<5D><><08>s<EFBFBD>

View File

@ -0,0 +1,2 @@
ثjx~ ٌV<D98C><56>e<EFBFBD><EFBFBD><7F>3l<33><6C><07>عى@<40>ئQRd<52><64>.<2E>My،^<><4C><08>.وT<D988>S<EFBFBD>
<EFBFBD>ykشة<D8B4><D8A9>ا<EFBFBD>ثُMَ<><D98E><76><D8B1>ق¤<D982>G<EFBFBD>f<EFBFBD>lM<6C>PلfT<66>G<EFBFBD>6<EFBFBD>اآ<D8A7><D8A2>$<24><>k<EFBFBD>{mE_ًع؟ٌُ<D98F><D98C>ا<EFBFBD>5دخ<D8AF><45>

View File

@ -0,0 +1 @@
ø+ï<s¦÷ø ²…rmi¶¿UîÂZ…<5A>; àD_&¹»;£цnMØòåøì´ämt§§Œ Íü{ÌžG§ Êº”8#ŠÐÀQÕÙ<C395>ãÝÎnkKÔ«ÏžŽØ®ß¡Ï–;“ g¹}wmÎn~?tHãDPŸ ¯6½áS6Ó\ŸÔä‰?Û„O‡)

View File

@ -0,0 +1 @@
@Ů0ů S4Ů<34>™ś? ?jW¨ÄuÉESŃŃi:Üa€Iđ§i˘îÖ¦ËŔ>ĹĚÍĽŤěLĺ`ĎŇ"W 2mM甎TÖĐ×ţ×Rű#ńŞD”ű°0éŢÔç~7Ŕy-‚€@Ă%±ĄďŃ_ČBä@ĘCtż8óĂü>ă's; ŠîĽĐUw/Ü`?{,¦źöb6+ŕˇq»Üę]?

View File

@ -0,0 +1 @@
漀L萄h#!卪餴泷弃9:煱-Y踭罖伋<E7BD96>

View File

@ -0,0 +1 @@
Û7…¨‰´½8wTÚ"/L-+þ yà[Éû©A¾ê0ñ#ž¬ð<06>FìÃhé†ü¦·ÅŽI½y†ïõO

View File

@ -0,0 +1 @@
/_:X Õ:kêªd1:4ˆôë°õµ~ø8áW#;Öæ€wS.Qïp<C3AF><IVC.ŠŽæ£NB²jؽ®l*ù¦Ç™o;`ÒgAñÉôà=JR° eJ3óMÎ

View File

@ -0,0 +1 @@
БЈvѓы(”gЭ,‰пє»То$ПСќDYmн&‚Зљ/qz2їj$єЭ2¤оc|s·¤¦%†5eыџъEЅь<±"bAіЮОШ™jҐЁУиќpа¤KАWФ†# Ц"©?©Ъ) ЄнхЩиvЙF ”_шмИ?'7ћХ\фђЕy'

View File

@ -0,0 +1,2 @@
[ì¼1ؾ­m6®JXcÑJCkUÒž¦ºªArqqm³£;.PkE †ßæ<C39F>ƒJÂÞ0¼A%NÅ@Ä}B7Çy/Ü×MŠò±ufBÕŒu©/kÅ=2j饷á±
—VWF“M™9ü9ž ?~ߎ~dêÝ1 @pè—´ŒkÊ+@E“P€é3w5ŒB ôÞÞ

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
利トd ュuヌテ"}ケNr

View File

@ -0,0 +1 @@
▀7Ы█Т╩%∙kФ1 sхэXЙ≈ЪI╤C{4и©П√╘OМж┌5&╚бz▌ anН%J╢V}ж▌▄мL8╛V;

View File

@ -0,0 +1 @@
:Þ¦ànBÄðAòw^ö7Œ°ˆ$^ÜOdHâ2[`Ð4[Ÿœxßeì<E28093>"·¹çn<C3A7><v³-]g'?ƒþzoÃÝ<IpúW³¾¬a´<61>ð©á?„F@ÄPšÓzß°®

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
zj<7A><6A>)゙xmuカ9

View File

@ -0,0 +1 @@
°-┬BЕТ▐Wd┌с # Я

View File

@ -0,0 +1,2 @@
G0<47>
<EFBFBD>%<25><><EFBFBD>&<26> <0B>T}

View File

@ -0,0 +1 @@
$╞6<Дf_(%в╢t°≤

Some files were not shown because too many files have changed in this diff Show More