Compare commits

..

32 Commits

Author SHA1 Message Date
Dr. Stephen Henson
3b4f1f302d update DRBG to handle new file format 2012-10-19 20:53:35 +00:00
Dr. Stephen Henson
986b927fb3 aix[64]-cc: get MT support right (gcc targets are not affected).
(backport from HEAD)
2012-10-16 22:47:44 +00:00
Dr. Stephen Henson
add13802cf Don't require tag before ciphertext in AESGCM mode 2012-10-16 22:47:00 +00:00
Dr. Stephen Henson
b6c1d4b7f0 e_aes.c: uninitialized variable in aes_ccm_init_key.
PR: 2874
Submitted by: Tomas Mraz
(backport from HEAD)
2012-10-15 11:28:59 +00:00
Dr. Stephen Henson
933c9d00da reset ctx->num for CTR mode for FIPS EVP 2012-10-14 12:38:58 +00:00
Dr. Stephen Henson
aaf8b56fc8 sha1-armv4-large.pl: comply with ABI.
(backport from HEAD)
2012-10-14 12:30:12 +00:00
Dr. Stephen Henson
799602e489 gcm128.c: fix AAD-only case with AAD length not divisible by 16.
PR: 2859
Submitted by: John Foley
(backport from HEAD)
2012-10-14 12:29:25 +00:00
Dr. Stephen Henson
82607b291f optimize make_kn (from HEAD, by Andy) 2012-10-14 12:26:02 +00:00
Dr. Stephen Henson
fd9d2eaf16 CMAC reset fix (from HEAD) 2012-10-14 12:24:24 +00:00
Dr. Stephen Henson
3e1beaf43e Add BSD-ppc85xx support and avoid copying overlapping buffers in fips_dssvs.c 2012-10-14 12:03:34 +00:00
Dr. Stephen Henson
ea11fc17cf Add support for Windows CE and C64+ to FIPS module. (from fips2-stable) 2012-10-04 14:27:39 +00:00
Dr. Stephen Henson
05b751c96b file TI_CGTOOLS.pl was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:39 +0000 2012-10-04 13:27:12 +00:00
Dr. Stephen Henson
9fe1f397aa file fips_standalone_sha1 was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:38 +0000 2012-10-04 13:27:10 +00:00
Dr. Stephen Henson
be739df6c5 file run6x was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:33 +0000 2012-10-04 13:27:09 +00:00
Dr. Stephen Henson
d26196803e file incore6x was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:33 +0000 2012-10-04 13:27:08 +00:00
Dr. Stephen Henson
1c540214e0 file hmac_sha1.pl was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:33 +0000 2012-10-04 13:27:07 +00:00
Dr. Stephen Henson
79f0c30e7e file fipscanister.cmd was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:33 +0000 2012-10-04 13:27:06 +00:00
Dr. Stephen Henson
3d75000cc3 file fips_standalone_sha1 was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:33 +0000 2012-10-04 13:27:05 +00:00
Dr. Stephen Henson
b82ac9947e file env was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:33 +0000 2012-10-04 13:27:04 +00:00
Dr. Stephen Henson
23c7979fcf file do_fips was added on branch OpenSSL-fips-2_0-dev on 2012-10-04 14:27:33 +0000 2012-10-04 13:27:03 +00:00
Dr. Stephen Henson
88e9264dd2 automatically make output directory is using minimal script 2012-06-07 17:14:31 +00:00
Dr. Stephen Henson
83db979256 Version of "incore" for Windows executables. Original by Andy. 2012-05-23 17:07:23 +00:00
Dr. Stephen Henson
4feb7ef394 Add --script-sfprefix option to insert a prefix before the request and
response filenames in output script.
2012-05-23 12:44:48 +00:00
Dr. Stephen Henson
4972d50da0 add comment 2012-05-23 11:47:01 +00:00
Dr. Stephen Henson
35b412322f fix typo 2012-05-23 11:45:21 +00:00
Dr. Stephen Henson
b75ff26d7b Don't install fips_standalone_sha1.exe if it isn't being built 2012-05-23 00:39:01 +00:00
Dr. Stephen Henson
b440c25d36 Changes needed to support WinCE compilation:
Don't try to raise SIGABRT if not defined.
Return from fips_dhvs.c main instead of calling exit.
Workaround for lack of GetSystemFileAsFileTime.
Disable optimisation for part of bn_nist.c to avoid compiler bug.
Remove /WX flag so we don't exist on warnings.
2012-05-22 23:57:22 +00:00
Dr. Stephen Henson
76f4af202e cross compile target support for do_fips script 2012-05-18 15:55:40 +00:00
Dr. Stephen Henson
fcb81a191d don't insert time in response files: it breaks some systems and we shouldn't be doing this anyway 2012-05-18 15:05:33 +00:00
Dr. Stephen Henson
05703abd9f Make Windows FIPS build work more like other builds. Add build_tests
target to build FIPS test utilities and build_algvs target to build the
multicall fips_algvs utility.
2012-05-17 11:09:46 +00:00
Dr. Stephen Henson
455ecb3a06 initial mk1mf cross compilation support 2012-05-16 18:56:33 +00:00
cvs2svn
d8e5830423 This commit was manufactured by cvs2svn to create branch 'OpenSSL-fips-
2_0-dev'.
2012-01-18 15:07:12 +00:00
11 changed files with 36 additions and 29 deletions

View File

@@ -463,8 +463,8 @@ my %table=(
"aix64-gcc","gcc:-maix64 -O -DB_ENDIAN::-pthread:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-maix64 -shared -Wl,-G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X64",
# Below targets assume AIX 5. Idea is to effectively disregard $OBJECT_MODE
# at build time. $OBJECT_MODE is respected at ./config stage!
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
"aix-cc", "cc:-q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::BN_LLONG RC4_CHAR:${ppc32_asm}:aix32:dlfcn:aix-shared::-q32 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 32",
"aix64-cc", "cc:-q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst::-qthreaded -D_THREAD_SAFE:AIX::SIXTY_FOUR_BIT_LONG RC4_CHAR:${ppc64_asm}:aix64:dlfcn:aix-shared::-q64 -G:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)::-X 64",
#
# Cray T90 and similar (SDSC)

4
TABLE
View File

@@ -862,7 +862,7 @@ $multilib =
$cc = cc
$cflags = -q32 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst
$unistd =
$thread_cflag = -qthreaded
$thread_cflag = -qthreaded -D_THREAD_SAFE
$sys_id = AIX
$lflags =
$bn_ops = BN_LLONG RC4_CHAR
@@ -961,7 +961,7 @@ $multilib =
$cc = cc
$cflags = -q64 -O -DB_ENDIAN -qmaxmem=16384 -qro -qroconst
$unistd =
$thread_cflag = -qthreaded
$thread_cflag = -qthreaded -D_THREAD_SAFE
$sys_id = AIX
$lflags =
$bn_ops = SIXTY_FOUR_BIT_LONG RC4_CHAR

View File

@@ -77,19 +77,17 @@ struct CMAC_CTX_st
/* Make temporary keys K1 and K2 */
static void make_kn(unsigned char *k1, unsigned char *l, int bl)
static void make_kn(unsigned char *k1, const unsigned char *l, int bl)
{
int i;
unsigned char c = l[0], carry = c>>7, cnext;
/* Shift block to left, including carry */
for (i = 0; i < bl; i++)
{
k1[i] = l[i] << 1;
if (i < bl - 1 && l[i + 1] & 0x80)
k1[i] |= 1;
}
for (i = 0; i < bl-1; i++, c = cnext)
k1[i] = (c << 1) | ((cnext=l[i+1]) >> 7);
/* If MSB set fixup with R */
if (l[0] & 0x80)
k1[bl - 1] ^= bl == 16 ? 0x87 : 0x1b;
k1[i] = (c << 1) ^ ((0-carry)&(bl==16?0x87:0x1b));
}
CMAC_CTX *CMAC_CTX_new(void)
@@ -153,6 +151,8 @@ int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,
return 0;
if (!M_EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, NULL, zero_iv))
return 0;
memset(ctx->tbl, 0, M_EVP_CIPHER_CTX_block_size(&ctx->cctx));
ctx->nlast_block = 0;
return 1;
}
/* Initialiase context */

View File

@@ -956,8 +956,6 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
if (!gctx->iv_set)
return -1;
if (!ctx->encrypt && gctx->taglen < 0)
return -1;
if (in)
{
if (out == NULL)
@@ -999,6 +997,8 @@ static int aes_gcm_cipher(EVP_CIPHER_CTX *ctx, unsigned char *out,
{
if (!ctx->encrypt)
{
if (gctx->taglen < 0)
return -1;
if (CRYPTO_gcm128_finish(&gctx->gcm,
ctx->buf, gctx->taglen) != 0)
return -1;
@@ -1195,6 +1195,7 @@ static int aes_ccm_init_key(EVP_CIPHER_CTX *ctx, const unsigned char *key,
vpaes_set_encrypt_key(key, ctx->key_len*8, &cctx->ks);
CRYPTO_ccm128_init(&cctx->ccm, cctx->M, cctx->L,
&cctx->ks, (block128_f)vpaes_encrypt);
cctx->str = NULL;
cctx->key_set = 1;
break;
}

View File

@@ -1403,7 +1403,7 @@ int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx,const unsigned char *tag,
void (*gcm_gmult_p)(u64 Xi[2],const u128 Htable[16]) = ctx->gmult;
#endif
if (ctx->mres)
if (ctx->mres || ctx->ares)
GCM_MUL(ctx,Xi);
if (is_endian.little) {

View File

@@ -177,6 +177,7 @@ for($i=0;$i<5;$i++) {
$code.=<<___;
teq $Xi,sp
bne .L_00_15 @ [((11+4)*5+2)*3]
sub sp,sp,#25*4
___
&BODY_00_15(@V); unshift(@V,pop(@V));
&BODY_16_19(@V); unshift(@V,pop(@V));
@@ -186,7 +187,6 @@ ___
$code.=<<___;
ldr $K,.LK_20_39 @ [+15+16*4]
sub sp,sp,#25*4
cmn sp,#0 @ [+3], clear carry to denote 20_39
.L_20_39_or_60_79:
___

View File

@@ -208,6 +208,8 @@ static void gcmtest(FILE *in, FILE *out, int encrypt)
ct = OPENSSL_malloc(ptlen);
rv = FIPS_cipher(&ctx, ct, pt, ptlen);
}
else
FIPS_cipher(&ctx, iv, iv, 0);
FIPS_cipher(&ctx, NULL, NULL, 0);
FIPS_cipher_ctx_ctrl(&ctx, EVP_CTRL_GCM_GET_TAG,
taglen, tag);
@@ -242,6 +244,8 @@ static void gcmtest(FILE *in, FILE *out, int encrypt)
pt = OPENSSL_malloc(ptlen);
rv = FIPS_cipher(&ctx, pt, ct, ptlen);
}
else
FIPS_cipher(&ctx, iv, iv, 0);
rv = FIPS_cipher(&ctx, NULL, NULL, 0);
if (rv < 0)
fprintf(out, "FAIL" RESP_EOL);

View File

@@ -34,8 +34,7 @@ const void *FIPS_text_end(void);
defined(__mips__)|| defined(__mips))) || \
(defined(__NetBSD__) && (defined(__powerpc__) || defined(__i386))) || \
(defined(__linux) && ((defined(__PPC__) && !defined(__PPC64__)) || \
defined(__arm__) || defined(__arm)) || \
defined(__mips__)) || \
defined(__arm__) || defined(__arm))) || \
(defined(__APPLE__) /* verified on all MacOS X & iOS flavors */)|| \
(defined(_TMS320C6X)) || \
(defined(_WIN32) && defined(_MSC_VER))

View File

@@ -182,7 +182,7 @@ int main(int argc,char **argv)
int r, nid = 0;
int pr = 0;
char buf[2048], lbuf[2048];
unsigned char randout[2048];
unsigned char *randout = NULL;
char *keyword = NULL, *value = NULL;
unsigned char *ent = NULL, *nonce = NULL, *pers = NULL, *adin = NULL;
@@ -298,6 +298,8 @@ int main(int argc,char **argv)
else
exit(1);
}
if (!strcmp(keyword, "[ReturnedBitsLen"))
randoutlen = atoi(value) / 8;
if (!strcmp(keyword, "EntropyInput"))
{
@@ -327,7 +329,11 @@ int main(int argc,char **argv)
FIPS_drbg_set_callbacks(dctx, test_entropy, 0, 0,
test_nonce, 0);
FIPS_drbg_set_app_data(dctx, &t);
randoutlen = (int)FIPS_drbg_get_blocklength(dctx);
if (randoutlen == 0)
randoutlen = (int)FIPS_drbg_get_blocklength(dctx);
if (randout)
OPENSSL_free(randout);
randout = OPENSSL_malloc(randoutlen);
r = FIPS_drbg_instantiate(dctx, pers, perslen);
if (!r)
{
@@ -406,6 +412,8 @@ int main(int argc,char **argv)
}
}
if (randout)
OPENSSL_free(randout);
if (in && in != stdin)
fclose(in);
if (out && out != stdout)

View File

@@ -208,6 +208,7 @@ int FIPS_cipherinit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher,
break;
case EVP_CIPH_CTR_MODE:
ctx->num = 0;
/* Don't reuse IV for CTR mode */
if(iv)
memcpy(ctx->iv, iv, M_EVP_CIPHER_CTX_iv_length(ctx));

View File

@@ -127,14 +127,8 @@ elsif ($FLAVOR =~ /CE/)
$base_cflags.=" $wcecdefs";
$base_cflags.=' -I$(WCECOMPAT)/include' if (defined($ENV{'WCECOMPAT'}));
$base_cflags.=' -I$(PORTSDK_LIBPATH)/../../include' if (defined($ENV{'PORTSDK_LIBPATH'}));
if ($ENV{PLATFORM} =~ /wce7/i) {
$opt_cflags=' /MT /O1i'; # optimize for space, but with intrinsics...
$dbg_cflags=' /MT /Od -DDEBUG -D_DEBUG';
} else {
$opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics...
$dbg_cflags=' /MC /Od -DDEBUG -D_DEBUG';
}
$opt_cflags=' /MC /O1i'; # optimize for space, but with intrinsics...
$dbg_clfags=' /MC /Od -DDEBUG -D_DEBUG';
$lflags="/nologo /opt:ref $wcelflag";
}
else # Win32