Commit e47af46c authored by Dr. Stephen Henson's avatar Dr. Stephen Henson
Browse files

Change FIPS source and utilities to use the "FIPS_" names directly

instead of using regular OpenSSL API names.
parent 36246be9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -82,7 +82,7 @@ int FIPS_selftest_aes()
    int n;
    int ret = 0;
    EVP_CIPHER_CTX ctx;
    EVP_CIPHER_CTX_init(&ctx);
    FIPS_cipher_ctx_init(&ctx);

    for(n=0 ; n < 1 ; ++n)
	{
@@ -95,7 +95,7 @@ int FIPS_selftest_aes()
	}
    ret = 1;
    err:
    EVP_CIPHER_CTX_cleanup(&ctx);
    FIPS_cipher_ctx_cleanup(&ctx);
    if (ret == 0)
	    FIPSerr(FIPS_F_FIPS_SELFTEST_AES,FIPS_R_SELFTEST_FAILED);
    return ret;
+13 −13
Original line number Diff line number Diff line
@@ -213,14 +213,14 @@ static int AESTest(EVP_CIPHER_CTX *ctx,
	printf("Invalid key size: %d\n", akeysz);
	return 0; 
	}
    if (EVP_CipherInit_ex(ctx, cipher, NULL, aKey, iVec, dir) <= 0)
    if (FIPS_cipherinit(ctx, cipher, aKey, iVec, dir) <= 0)
	return 0;
    if(!strcasecmp(amode,"CFB1"))
	M_EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPH_FLAG_LENGTH_BITS);
    if (dir)
		EVP_Cipher(ctx, ciphertext, plaintext, len);
		FIPS_cipher(ctx, ciphertext, plaintext, len);
	else
		EVP_Cipher(ctx, plaintext, ciphertext, len);
		FIPS_cipher(ctx, plaintext, ciphertext, len);
    return 1;
    }

@@ -254,7 +254,7 @@ static int do_mct(char *amode,
    int i, j, n, n1, n2;
    int imode = 0, nkeysz = akeysz/8;
    EVP_CIPHER_CTX ctx;
    EVP_CIPHER_CTX_init(&ctx);
    FIPS_cipher_ctx_init(&ctx);

    if (len > 32)
	{
@@ -310,12 +310,12 @@ static int do_mct(char *amode,
		    {
		    if (dir == XENCRYPT)
			{
			EVP_Cipher(&ctx, ctext[j], ptext[j], len);
			FIPS_cipher(&ctx, ctext[j], ptext[j], len);
			memcpy(ptext[j+1], ctext[j], len);
			}
		    else
			{
			EVP_Cipher(&ctx, ptext[j], ctext[j], len);
			FIPS_cipher(&ctx, ptext[j], ctext[j], len);
			memcpy(ctext[j+1], ptext[j], len);
			}
		    }
@@ -338,12 +338,12 @@ static int do_mct(char *amode,
		    {
		    if (dir == XENCRYPT)
			{
			EVP_Cipher(&ctx, ctext[j], ptext[j], len);
			FIPS_cipher(&ctx, ctext[j], ptext[j], len);
			memcpy(ptext[j+1], ctext[j-1], len);
			}
		    else
			{
			EVP_Cipher(&ctx, ptext[j], ctext[j], len);
			FIPS_cipher(&ctx, ptext[j], ctext[j], len);
			memcpy(ctext[j+1], ptext[j-1], len);
			}
		    }
@@ -359,9 +359,9 @@ static int do_mct(char *amode,
		else
		    {
		    if (dir == XENCRYPT)
			EVP_Cipher(&ctx, ctext[j], ptext[j], len);
			FIPS_cipher(&ctx, ctext[j], ptext[j], len);
		    else
			EVP_Cipher(&ctx, ptext[j], ctext[j], len);
			FIPS_cipher(&ctx, ptext[j], ctext[j], len);
		    }
		if (dir == XENCRYPT)
		    {
@@ -393,9 +393,9 @@ static int do_mct(char *amode,
		else
		    {
		    if (dir == XENCRYPT)
			EVP_Cipher(&ctx, ctext[j], ptext[j], len);
			FIPS_cipher(&ctx, ctext[j], ptext[j], len);
		    else
			EVP_Cipher(&ctx, ptext[j], ctext[j], len);
			FIPS_cipher(&ctx, ptext[j], ctext[j], len);

		    }
		if(dir == XENCRYPT)
@@ -565,7 +565,7 @@ static int proc_file(char *rqfile, char *rspfile)
    unsigned char ciphertext[2048];
    char *rp;
    EVP_CIPHER_CTX ctx;
    EVP_CIPHER_CTX_init(&ctx);
    FIPS_cipher_ctx_init(&ctx);

    if (!rqfile || !(*rqfile))
	{
+18 −18
Original line number Diff line number Diff line
@@ -87,7 +87,7 @@ static void gcmtest(int encrypt)
	unsigned char *ct = NULL, *pt = NULL;
	EVP_CIPHER_CTX ctx;
	const EVP_CIPHER *gcm;
	EVP_CIPHER_CTX_init(&ctx);
	FIPS_cipher_ctx_init(&ctx);

	while(fgets(buf,sizeof buf,stdin) != NULL)
		{
@@ -175,20 +175,20 @@ static void gcmtest(int encrypt)
		if (encrypt && pt && aad && (iv || encrypt==1))
			{
			tag = OPENSSL_malloc(taglen);
			EVP_CipherInit_ex(&ctx, gcm, NULL, NULL, NULL, 1);
			FIPS_cipherinit(&ctx, gcm, NULL, NULL, 1);
			/* Relax FIPS constraints for testing */
			M_EVP_CIPHER_CTX_set_flags(&ctx, EVP_CIPH_FLAG_NON_FIPS_ALLOW);
			EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_GCM_SET_IVLEN, ivlen, 0);
			FIPS_cipher_ctx_ctrl(&ctx, EVP_CTRL_GCM_SET_IVLEN, ivlen, 0);
			if (encrypt == 1)
				{
				static unsigned char iv_fixed[4] = {1,2,3,4};
				if (!iv)
					iv = OPENSSL_malloc(ivlen);
				EVP_CipherInit_ex(&ctx, NULL, NULL, key, NULL, 1);
				EVP_CIPHER_CTX_ctrl(&ctx,
				FIPS_cipherinit(&ctx, NULL, key, NULL, 1);
				FIPS_cipher_ctx_ctrl(&ctx,
						EVP_CTRL_GCM_SET_IV_FIXED,
						4, iv_fixed);
				if (!EVP_CIPHER_CTX_ctrl(&ctx,
				if (!FIPS_cipher_ctx_ctrl(&ctx,
					EVP_CTRL_GCM_IV_GEN, 0, iv))
					{
					fprintf(stderr, "IV gen error\n");
@@ -197,18 +197,18 @@ static void gcmtest(int encrypt)
				OutputValue("IV", iv, ivlen, stdout, 0);
				}
			else
				EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, 1);
				FIPS_cipherinit(&ctx, NULL, key, iv, 1);


			if (aadlen)
				EVP_Cipher(&ctx, NULL, aad, aadlen);
				FIPS_cipher(&ctx, NULL, aad, aadlen);
			if (ptlen)
				{
				ct = OPENSSL_malloc(ptlen);
				rv = EVP_Cipher(&ctx, ct, pt, ptlen);
				rv = FIPS_cipher(&ctx, ct, pt, ptlen);
				}
			EVP_Cipher(&ctx, NULL, NULL, 0);
			EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_GCM_GET_TAG,
			FIPS_cipher(&ctx, NULL, NULL, 0);
			FIPS_cipher_ctx_ctrl(&ctx, EVP_CTRL_GCM_GET_TAG,
								taglen, tag);	
			OutputValue("CT", ct, ptlen, stdout, 0);
			OutputValue("Tag", tag, taglen, stdout, 0);
@@ -228,20 +228,20 @@ static void gcmtest(int encrypt)
			}	
		if (!encrypt && tag)
			{
			EVP_CipherInit_ex(&ctx, gcm, NULL, NULL, NULL, 0);
			FIPS_cipherinit(&ctx, gcm, NULL, NULL, 0);
			/* Relax FIPS constraints for testing */
			M_EVP_CIPHER_CTX_set_flags(&ctx, EVP_CIPH_FLAG_NON_FIPS_ALLOW);
			EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_GCM_SET_IVLEN, ivlen, 0);
			EVP_CipherInit_ex(&ctx, NULL, NULL, key, iv, 0);
			EVP_CIPHER_CTX_ctrl(&ctx, EVP_CTRL_GCM_SET_TAG, taglen, tag);
			FIPS_cipher_ctx_ctrl(&ctx, EVP_CTRL_GCM_SET_IVLEN, ivlen, 0);
			FIPS_cipherinit(&ctx, NULL, key, iv, 0);
			FIPS_cipher_ctx_ctrl(&ctx, EVP_CTRL_GCM_SET_TAG, taglen, tag);
			if (aadlen)
				EVP_Cipher(&ctx, NULL, aad, aadlen);
				FIPS_cipher(&ctx, NULL, aad, aadlen);
			if (ptlen)
				{
				pt = OPENSSL_malloc(ptlen);
				rv = EVP_Cipher(&ctx, pt, ct, ptlen);
				rv = FIPS_cipher(&ctx, pt, ct, ptlen);
				}
			rv = EVP_Cipher(&ctx, NULL, NULL, 0);
			rv = FIPS_cipher(&ctx, NULL, NULL, 0);
			if (rv < 0)
				printf("FAIL\n");
			else
+2 −2
Original line number Diff line number Diff line
@@ -110,7 +110,7 @@ int FIPS_selftest_des()
    {
    int n, ret = 0;
    EVP_CIPHER_CTX ctx;
    EVP_CIPHER_CTX_init(&ctx);
    FIPS_cipher_ctx_init(&ctx);
    /* Encrypt/decrypt with 2-key 3DES and compare to known answers */
    for(n=0 ; n < 2 ; ++n)
	{
@@ -130,7 +130,7 @@ int FIPS_selftest_des()
	}
    ret = 1;
    err:
    EVP_CIPHER_CTX_cleanup(&ctx);
    FIPS_cipher_ctx_cleanup(&ctx);
    if (ret == 0)
	    FIPSerr(FIPS_F_FIPS_SELFTEST_DES,FIPS_R_SELFTEST_FAILED);

+5 −5
Original line number Diff line number Diff line
@@ -122,11 +122,11 @@ static int DESTest(EVP_CIPHER_CTX *ctx,
	EXIT(1);
	}

    if (EVP_CipherInit_ex(ctx, cipher, NULL, aKey, iVec, dir) <= 0)
    if (FIPS_cipherinit(ctx, cipher, aKey, iVec, dir) <= 0)
	return 0;
    if(!strcasecmp(amode,"CFB1"))
	M_EVP_CIPHER_CTX_set_flags(ctx, EVP_CIPH_FLAG_LENGTH_BITS);
    EVP_Cipher(ctx, out, in, len);
    FIPS_cipher(ctx, out, in, len);

    return 1;
    }
@@ -184,7 +184,7 @@ static void do_mct(char *amode,
	int kp=akeysz/64;
	unsigned char old_iv[8];
	EVP_CIPHER_CTX ctx;
	EVP_CIPHER_CTX_init(&ctx);
	FIPS_cipher_ctx_init(&ctx);

	fprintf(rfp,"\nCOUNT = %d\n",i);
	if(kp == 1)
@@ -219,7 +219,7 @@ static void do_mct(char *amode,
	    else
		{
		memcpy(old_iv,ctx.iv,8);
		EVP_Cipher(&ctx,text,text,len);
		FIPS_cipher(&ctx,text,text,len);
		}
	    if(j == 9999)
		{
@@ -282,7 +282,7 @@ static int proc_file(char *rqfile, char *rspfile)
    char *rp;
    EVP_CIPHER_CTX ctx;
    int numkeys=1;
    EVP_CIPHER_CTX_init(&ctx);
    FIPS_cipher_ctx_init(&ctx);

    if (!rqfile || !(*rqfile))
	{
Loading