Ich versuche, die Parameter der folgenden Funktion in openSSL Crypto-Bibliothek zu verstehen.Parameterdetails von OpenSSL AES_ctr128_encrypt()
void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
size_t length, const AES_KEY *key,
unsigned char ivec[AES_BLOCK_SIZE],
unsigned char ecount_buf[AES_BLOCK_SIZE],
unsigned int *num);
von durch die here ich war in der Lage, um herauszufinden, gegeben Vorschläge arbeiten:
*in - is the buffer in.
*out - is the buffer out.
length - is the the length of the *in buffer.
*key - is the private key.
ivec[0-7] - is the random IV
ivec[8-15] - is the counter thats incremented for every block that's encrypted.
Ich bin nicht sicher über die
ecount_buf
undnum
Parameter.
Ich sehe, dass num
-length % AES_BLOCK_SIZE
nach dem Aufruf zurückkehrt gesetzt.
Irgendwelche Hinweise darauf, was der
ecount_buf
Parameter ist?
Sie sollten 'AES_encrypt' und Freunde * nicht * benutzen. Das ist eine reine Software-Implementierung, so dass Sie keine Hardware-Unterstützung wie AES-NI genießen werden. Sie sollten 'EVP_ *' Funktionen verwenden. Siehe [Symmetrische Verschlüsselung und Entschlüsselung von EVP] (http://wiki.openssl.org/index.php/EVP_Symmetric_Encryption_and_Decryption) im OpenSSL-Wiki. Tatsächlich sollten Sie eine authentifizierte Verschlüsselung verwenden, da sie * sowohl * Vertraulichkeit als auch Authentizität bietet. Siehe [Authentifizierte Verschlüsselung und Entschlüsselung mit EVP] (http://wiki.openssl.org/index.php/EVP_Authenticated_Encryption_and_Decryption) im OpenSSL-Wiki. – jww