Lines Matching refs:ctx

62 static int32_t OpensslEvpInit(EVP_CIPHER_CTX **ctx, const AesGcmCipherKey *cipherkey, bool mode)
74 *ctx = EVP_CIPHER_CTX_new();
75 if (*ctx == NULL) {
78 EVP_CIPHER_CTX_set_padding(*ctx, OPENSSL_EVP_PADDING_FUNC_OPEN);
80 ret = EVP_EncryptInit_ex(*ctx, cipher, NULL, NULL, NULL);
83 EVP_CIPHER_CTX_free(*ctx);
87 ret = EVP_DecryptInit_ex(*ctx, cipher, NULL, NULL, NULL);
90 EVP_CIPHER_CTX_free(*ctx);
94 ret = EVP_CIPHER_CTX_ctrl(*ctx, EVP_CTRL_GCM_SET_IVLEN, GCM_IV_LEN, NULL);
97 EVP_CIPHER_CTX_free(*ctx);
103 static int32_t PackIvAndTag(EVP_CIPHER_CTX *ctx, const AesGcmCipherKey *cipherkey, uint32_t dataLen,
115 int ret = EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_GET_TAG, TAG_LEN, (void *)tagbuf);
138 EVP_CIPHER_CTX *ctx = NULL;
139 int32_t ret = OpensslEvpInit(&ctx, cipherkey, true);
144 ret = EVP_EncryptInit_ex(ctx, NULL, NULL, cipherkey->key, cipherkey->iv);
147 EVP_CIPHER_CTX_free(ctx);
150 ret = EVP_EncryptUpdate(ctx, cipherText + GCM_IV_LEN, (int32_t *)&outbufLen, plainText, plainTextSize);
153 EVP_CIPHER_CTX_free(ctx);
157 ret = EVP_EncryptFinal_ex(ctx, cipherText + GCM_IV_LEN + outbufLen, (int32_t *)&outbufLen);
160 EVP_CIPHER_CTX_free(ctx);
164 ret = PackIvAndTag(ctx, cipherkey, outlen, cipherText, cipherTextLen);
167 EVP_CIPHER_CTX_free(ctx);
170 EVP_CIPHER_CTX_free(ctx);
184 EVP_CIPHER_CTX *ctx = NULL;
185 int32_t ret = OpensslEvpInit(&ctx, cipherkey, false);
190 ret = EVP_DecryptInit_ex(ctx, NULL, NULL, cipherkey->key, cipherkey->iv);
195 ret = EVP_CIPHER_CTX_ctrl(ctx, EVP_CTRL_GCM_SET_TAG, TAG_LEN, (void *)(cipherText + (cipherTextSize - TAG_LEN)));
200 ret = EVP_DecryptUpdate(ctx, plain, (int32_t *)&plainLen, cipherText + GCM_IV_LEN, cipherTextSize - OVERHEAD_LEN);
210 ret = EVP_DecryptFinal_ex(ctx, plain + plainLen, (int32_t *)&plainLen);
220 EVP_CIPHER_CTX_free(ctx);
223 EVP_CIPHER_CTX_free(ctx);
227 static int32_t HandleError(EVP_CIPHER_CTX *ctx, const char *buf)
232 if (ctx != NULL) {
233 EVP_CIPHER_CTX_free(ctx);
245 EVP_ENCODE_CTX *ctx = EVP_ENCODE_CTX_new();
246 if (ctx == NULL) {
252 EVP_ENCODE_CTX_free(ctx);
255 EVP_EncodeInit(ctx);
256 int32_t ret = EVP_EncodeUpdate(ctx, dstTmp, &outlen, src, slen);
259 EVP_ENCODE_CTX_free(ctx);
264 EVP_EncodeFinal(ctx, dstTmp + outlen, &outlen);
269 EVP_ENCODE_CTX_free(ctx);
277 EVP_ENCODE_CTX_free(ctx);
286 EVP_ENCODE_CTX_free(ctx);
298 EVP_ENCODE_CTX *ctx = EVP_ENCODE_CTX_new();
299 if (ctx == NULL) {
305 EVP_ENCODE_CTX_free(ctx);
308 EVP_DecodeInit(ctx);
309 int32_t ret = EVP_DecodeUpdate(ctx, dstTmp, &outlen, src, slen);
316 ret = EVP_DecodeFinal(ctx, dstTmp + outlen, &outlen);
337 EVP_ENCODE_CTX_free(ctx);
490 EVP_CIPHER_CTX *ctx = NULL;
495 return HandleError(ctx, "get cipher failed");
497 if (!(ctx = EVP_CIPHER_CTX_new())) {
498 return HandleError(ctx, "EVP_CIPHER_CTX_new ctr failed");
500 if (EVP_EncryptInit_ex(ctx, cipher, NULL, key->key, key->iv) != 1) {
501 return HandleError(ctx, "EVP_EncryptInit_ex ctr failed");
503 if (EVP_EncryptUpdate(ctx, encryptData, &len, input, inLen) != 1) {
504 return HandleError(ctx, "EVP_EncryptUpdate ctr failed");
507 if (EVP_EncryptFinal_ex(ctx, encryptData + len, &len) != 1) {
508 return HandleError(ctx, "EVP_EncryptFinal_ex ctr failed");
511 EVP_CIPHER_CTX_free(ctx);
521 EVP_CIPHER_CTX *ctx = NULL;
526 return HandleError(ctx, "get cipher failed");
528 if (!(ctx = EVP_CIPHER_CTX_new())) {
529 return HandleError(ctx, "EVP_CIPHER_CTX_new ctr failed");
531 if (EVP_DecryptInit_ex(ctx, cipher, NULL, key->key, key->iv) != 1) {
532 return HandleError(ctx, "EVP_DecryptInit_ex ctr failed");
534 if (EVP_DecryptUpdate(ctx, decryptData, &len, input, inLen) != 1) {
535 return HandleError(ctx, "EVP_DecryptUpdate ctr failed");
538 if (EVP_DecryptFinal_ex(ctx, decryptData + len, &len) != 1) {
539 return HandleError(ctx, "EVP_DecryptFinal_ex ctr failed");
542 EVP_CIPHER_CTX_free(ctx);