OpenSSL의 함수 FIPS_mode_set
은 암호화에 영향을 미치지 않아야합니다. 약한 암호가 사용되면 프로그램을 종료하는 것뿐입니다.FIPS_mode_set 함수가 암호화에 영향을줍니다.
나는 EVP_aes_128
암호화를 사용하는 코드의 조각을 가지고
EVP_CIPHER_CTX ctx;// = EVP_CIPHER_CTX_new();
EVP_CIPHER_CTX_init(&ctx);
const EVP_CIPHER *cipher = EVP_aes_128_cbc();
EVP_EncryptInit(&ctx, cipher, key, IV);
EVP_CIPHER_CTX_set_padding (&ctx, 0);
EVP_EncryptUpdate(&ctx, encrypted.get(), &encrypted_size, paddedPlain.get(), encrypted_size);
return encrypted;
이 코드는 일관성 (나는 모든 실행에 같은 출력을 얻을)하고 항상 예상대로 작업 (암호 해독 함수는 함께 다시 암호를 해독하지 않습니다 문제). 그러나 실행 시작 부분에 FIPS_mode_set
(1)을 호출하면 출력 버퍼에 일치하지 않는 출력이 출력됩니다.

내가 OpenSSL이 버전 1.0.2k를 사용하고 있습니다.
이러한 동작이 발생할 수있는 원인은 무엇입니까?
"일관되지 않은 출력"이란 무엇을 의미합니까? 당신은 기대 가치 (당신이 그것을 기대하는 이유)와 실제 결과를 가지고 있습니까? 그럴 경우 * 질문에 * 기입하십시오. –
@MaartenBodewes - 귀하의 모든 질문에 대한 답변을 추가했습니다. –