GpgFrontend Project
A Free, Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP(pgp) Crypto Tool.
GpgFrontend::RawAPI Namespace Reference

Functions

int aes_256_cbc_init (uint8_t *key_data, int key_data_len, uint8_t *salt, EVP_CIPHER_CTX *e_ctx, EVP_CIPHER_CTX *d_ctx)
 Create a 256 bit key and IV using the supplied key_data. salt can be added for taste. Fills in the encryption and decryption ctx objects and returns 0 on success. More...
 
uint8_t * aes_256_cbc_encrypt (EVP_CIPHER_CTX *e, uint8_t *plaintext, int *len)
 Encrypt *len bytes of data All data going in & out is considered binary (uint8_t[]) More...
 
uint8_t * aes_256_cbc_decrypt (EVP_CIPHER_CTX *e, uint8_t *ciphertext, int *len)
 Decrypt *len bytes of ciphertext. More...
 

Detailed Description

Copyright (C) 2021 Saturneric eric@.nosp@m.bktu.nosp@m.s.com

This file is part of GpgFrontend.

GpgFrontend is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

GpgFrontend is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with GpgFrontend. If not, see https://www.gnu.org/licenses/.

The initial version of the source code is inherited from the gpg4usb project, which is under GPL-3.0-or-later.

All the source code of GpgFrontend was modified and released by Saturneric eric@.nosp@m.bktu.nosp@m.s.com starting on May 12, 2021.

SPDX-License-Identifier: GPL-3.0-or-later

AES encryption/decryption demo program using OpenSSL EVP apis gcc -Wall openssl_aes.c -lcrypto this is public domain code. Saju Pillai (saju..nosp@m.pill.nosp@m.ai@gm.nosp@m.ail..nosp@m.com)

Function Documentation

◆ aes_256_cbc_decrypt()

uint8_t * GpgFrontend::RawAPI::aes_256_cbc_decrypt ( EVP_CIPHER_CTX *  e,
uint8_t *  ciphertext,
int *  len 
)

Decrypt *len bytes of ciphertext.

Parameters
e
ciphertext
len
Returns
uint8_t*

◆ aes_256_cbc_encrypt()

uint8_t * GpgFrontend::RawAPI::aes_256_cbc_encrypt ( EVP_CIPHER_CTX *  e,
uint8_t *  plaintext,
int *  len 
)

Encrypt *len bytes of data All data going in & out is considered binary (uint8_t[])

Parameters
e
plaintext
len
Returns
uint8_t*

◆ aes_256_cbc_init()

int GpgFrontend::RawAPI::aes_256_cbc_init ( uint8_t *  key_data,
int  key_data_len,
uint8_t *  salt,
EVP_CIPHER_CTX *  e_ctx,
EVP_CIPHER_CTX *  d_ctx 
)

Create a 256 bit key and IV using the supplied key_data. salt can be added for taste. Fills in the encryption and decryption ctx objects and returns 0 on success.

Parameters
key_data
key_data_len
salt
e_ctx
d_ctx
Returns
int