我试图在没有任何身份验证的情况下使用ChaCha20。我不认为我可以在libsodium https://download.libsodium.org/doc/secret-key_cryptography/original_chacha20-poly1305_construction.html
中做到这一点我查了一下OpenSSL的API https://github.com/openssl/openssl/blob/master/crypto/include/internal/chacha.h 这似乎允许它没有任何身份验证。但是,没有加密或解密功能,只有
void ChaCha20_ctr32(unsigned char *out, const unsigned char *inp,
size_t len, const unsigned int key[8],
const unsigned int counter[4]);
我对此做了什么感到困惑,是加密还是解密?
答案 0 :(得分:1)
您指向的OpenSSL头文件是内部头文件,不构成公共API的一部分。您需要使用的是使用EVP_chacha20()密码的EVP API。
有关各种功能,请参见此手册页: https://www.openssl.org/docs/man1.1.0/crypto/EVP_EncryptInit_ex.html
这里有一些示例代码: https://wiki.openssl.org/index.php/EVP_Symmetric_Encryption_and_Decryption