通过openssl实现AES GCM SIV?

问题描述

openssl 是否提供用于执行 aes-gcm SIV 模式 (RFC 8452) 的包装函数?即,我将如何修改此示例代码以执行 SIV 模式:

https://github.com/openssl/openssl/blob/master/demos/evp/aesgcm.c

ctx = EVP_CIPHER_CTX_new();
/* Set cipher type and mode */
EVP_Encryptinit_ex(ctx,EVP_aes_256_gcm(),NULL,NULL);
/* Set IV length if default 96 bits is not appropriate */
EVP_CIPHER_CTX_ctrl(ctx,EVP_CTRL_AEAD_SET_IVLEN,sizeof(gcm_iv),NULL);
/* Initialise key and IV */
EVP_Encryptinit_ex(ctx,gcm_key,gcm_iv);
/* Zero or more calls to specify any AAD */
EVP_EncryptUpdate(ctx,&outlen,gcm_aad,sizeof(gcm_aad));
/* Encrypt plaintext */
EVP_EncryptUpdate(ctx,outbuf,gcm_pt,sizeof(gcm_pt));
/* Output encrypted block */
printf("Ciphertext:\n");
BIO_dump_fp(stdout,outlen);
/* Finalise: note get no output for GCM */
EVP_EncryptFinal_ex(ctx,&outlen);
/* Get tag */
EVP_CIPHER_CTX_ctrl(ctx,EVP_CTRL_AEAD_GET_TAG,16,outbuf);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...