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

Functions
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

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 Saturnericeric@.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