ChaCha20在libsodium或OpenSSL

时间:2018-04-30 19:21:51

标签: openssl encryption-symmetric libsodium

我试图在没有任何身份验证的情况下使用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]);

我对此做了什么感到困惑,是加密还是解密?

1 个答案:

答案 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