Commit f768be81 authored by Andy Polyakov's avatar Andy Polyakov
Browse files

size_t-fy AES, Camellia and RC4.

parent 91173829
Loading
Loading
Loading
Loading
+10 −8
Original line number Diff line number Diff line
@@ -58,6 +58,8 @@
#error AES is disabled.
#endif

#include <stddef.h>

#define AES_ENCRYPT	1
#define AES_DECRYPT	0

@@ -96,35 +98,35 @@ void AES_decrypt(const unsigned char *in, unsigned char *out,
void AES_ecb_encrypt(const unsigned char *in, unsigned char *out,
	const AES_KEY *key, const int enc);
void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
	const unsigned long length, const AES_KEY *key,
	size_t length, const AES_KEY *key,
	unsigned char *ivec, const int enc);
void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
	unsigned long length, const AES_KEY *key,
	size_t length, const AES_KEY *key,
	unsigned char *ivec, int *num, const int enc);
void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
	const unsigned long length, const AES_KEY *key,
	size_t length, const AES_KEY *key,
	unsigned char *ivec, int *num, const int enc);
void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
	const unsigned long length, const AES_KEY *key,
	size_t length, const AES_KEY *key,
	unsigned char *ivec, int *num, const int enc);
void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out,
			    const int nbits,const AES_KEY *key,
			    unsigned char *ivec,const int enc);
void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out,
	unsigned long length, const AES_KEY *key,
	size_t length, const AES_KEY *key,
	unsigned char *ivec, int *num);
void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
	const unsigned long length, const AES_KEY *key,
	size_t length, const AES_KEY *key,
	unsigned char ivec[AES_BLOCK_SIZE],
	unsigned char ecount_buf[AES_BLOCK_SIZE],
	unsigned int *num);
/* NB: the IV is _two_ blocks long */
void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
		     const unsigned long length, const AES_KEY *key,
		     size_t length, const AES_KEY *key,
		     unsigned char *ivec, const int enc);
/* NB: the IV is _four_ blocks long */
void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
			const unsigned long length, const AES_KEY *key,
			size_t length, const AES_KEY *key,
			const AES_KEY *key2, const unsigned char *ivec,
			const int enc);

+2 −3
Original line number Diff line number Diff line
@@ -60,11 +60,10 @@
#include "aes_locl.h"

void AES_cbc_encrypt(const unsigned char *in, unsigned char *out,
		     const unsigned long length, const AES_KEY *key,
		     size_t len, const AES_KEY *key,
		     unsigned char *ivec, const int enc) {

	unsigned long n;
	unsigned long len = length;
	size_t n;
	unsigned char tmp[AES_BLOCK_SIZE];
	const unsigned char *iv = ivec;

+6 −6
Original line number Diff line number Diff line
@@ -73,11 +73,11 @@
 */

void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out,
	unsigned long length, const AES_KEY *key,
	size_t length, const AES_KEY *key,
	unsigned char *ivec, int *num, const int enc) {

    unsigned int n;
    unsigned long l = 0;
    size_t l = 0;

    assert(in && out && key && ivec && num);

@@ -219,10 +219,10 @@ void AES_cfbr_encrypt_block(const unsigned char *in,unsigned char *out,

/* N.B. This expects the input to be packed, MS bit first */
void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
		      const unsigned long length, const AES_KEY *key,
		      size_t length, const AES_KEY *key,
		      unsigned char *ivec, int *num, const int enc)
    {
    unsigned int n;
    size_t n;
    unsigned char c[1],d[1];

    assert(in && out && key && ivec && num);
@@ -238,10 +238,10 @@ void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out,
    }

void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out,
		      const unsigned long length, const AES_KEY *key,
		      size_t length, const AES_KEY *key,
		      unsigned char *ivec, int *num, const int enc)
    {
    unsigned int n;
    size_t n;

    assert(in && out && key && ivec && num);
    assert(*num == 0);
+2 −3
Original line number Diff line number Diff line
@@ -113,20 +113,19 @@ static void AES_ctr128_inc(unsigned char *counter) {
 * into the rest of the IV when incremented.
 */
void AES_ctr128_encrypt(const unsigned char *in, unsigned char *out,
	const unsigned long length, const AES_KEY *key,
	size_t length, const AES_KEY *key,
	unsigned char ivec[AES_BLOCK_SIZE],
	unsigned char ecount_buf[AES_BLOCK_SIZE],
	unsigned int *num) {

	unsigned int n;
	unsigned long l=length;

	assert(in && out && key && counter && num);
	assert(*num < AES_BLOCK_SIZE);

	n = *num;

	while (l--) {
	while (length--) {
		if (n == 0) {
			AES_encrypt(ivec, ecount_buf, key);
 			AES_ctr128_inc(ivec);
+6 −6
Original line number Diff line number Diff line
@@ -77,11 +77,11 @@ typedef struct {
/* N.B. The IV for this mode is _twice_ the block size */

void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
					 const unsigned long length, const AES_KEY *key,
					 size_t length, const AES_KEY *key,
					 unsigned char *ivec, const int enc)
	{
	unsigned long n;
	unsigned long len;
	size_t n;
	size_t len = length;

	OPENSSL_assert(in && out && key && ivec);
	OPENSSL_assert((AES_ENCRYPT == enc)||(AES_DECRYPT == enc));
@@ -211,12 +211,12 @@ void AES_ige_encrypt(const unsigned char *in, unsigned char *out,
/* N.B. The IV for this mode is _four times_ the block size */

void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out,
						const unsigned long length, const AES_KEY *key,
						size_t length, const AES_KEY *key,
						const AES_KEY *key2, const unsigned char *ivec,
						const int enc)
	{
	unsigned long n;
	unsigned long len = length;
	size_t n;
	size_t len = length;
	unsigned char tmp[AES_BLOCK_SIZE];
	unsigned char tmp2[AES_BLOCK_SIZE];
	unsigned char tmp3[AES_BLOCK_SIZE];
Loading