Skip to content

Commit

Permalink
fix cbmc
Browse files Browse the repository at this point in the history
  • Loading branch information
goatgoose committed Jan 24, 2024
1 parent d6329d5 commit 19b9242
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
1 change: 1 addition & 0 deletions tests/cbmc/proofs/s2n_hmac_is_available/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ HARNESS_FILE = $(HARNESS_ENTRY).c
PROOF_SOURCES += $(PROOFDIR)/$(HARNESS_FILE)
PROOF_SOURCES += $(PROOF_STUB)/s2n_calculate_stacktrace.c
PROOF_SOURCES += $(PROOF_STUB)/s2n_is_in_fips_mode.c
PROOF_SOURCES += $(PROOF_STUB)/s2n_libcrypto_is_awslc.c

PROJECT_SOURCES += $(SRCDIR)/crypto/s2n_hmac.c

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@

#include "crypto/s2n_fips.h"
#include "crypto/s2n_hmac.h"
#include "crypto/s2n_openssl.h"

#include <assert.h>

Expand All @@ -33,7 +34,7 @@ void s2n_hmac_is_available_harness()
case S2N_HASH_MD5:
case S2N_HMAC_SSLv3_MD5:
case S2N_HMAC_SSLv3_SHA1:
assert(is_available == !s2n_is_in_fips_mode()); break;
assert(is_available == !s2n_is_in_fips_mode() || s2n_libcrypto_is_awslc()); break;
case S2N_HASH_NONE:
case S2N_HASH_SHA1:
case S2N_HASH_SHA224:
Expand Down
30 changes: 30 additions & 0 deletions tests/cbmc/stubs/s2n_libcrypto_is_awslc.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License"). You may not use
* this file except in compliance with the License. A copy of the License is
* located at
*
* http://aws.amazon.com/apache2.0/
*
* or in the "license" file accompanying this file. This file is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
* implied. See the License for the specific language governing permissions and
* limitations under the License.
*/

#include <cbmc_proof/nondet.h>

#include "crypto/s2n_openssl.h"

static int flag = 0;
static int s2n_awslc_flag = 0;

int s2n_libcrypto_is_awslc()
{
if (flag == 0) {
s2n_awslc_flag = nondet_bool() ? 1 : 0;
flag = 1;
}
return s2n_awslc_flag;
}

0 comments on commit 19b9242

Please sign in to comment.