openssl.h File Reference


Detailed Description

Copyright (C) 2006-2009, Paul Bakker <polarssl_maintainer at polarssl.org> All rights reserved.

Joined copyright on original XySSL code with: Christophe Devine

This program 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 2 of the License, or (at your option) any later version.

This program 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 this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

Definition in file openssl.h.

#include "polarssl/aes.h"
#include "polarssl/md5.h"
#include "polarssl/rsa.h"
#include "polarssl/sha1.h"

Go to the source code of this file.

Defines

#define AES_BLOCK_SIZE   16
#define AES_cbc_encrypt(INPUT, OUTPUT, LEN, CTX, IV, MODE)   aes_crypt_cbc( (CTX), (MODE), (LEN), (IV), (INPUT), (OUTPUT) )
#define AES_KEY   aes_context
#define AES_set_decrypt_key(KEY, KEYSIZE, CTX)   aes_setkey_dec( (CTX), (KEY), (KEYSIZE) )
#define AES_set_encrypt_key(KEY, KEYSIZE, CTX)   aes_setkey_enc( (CTX), (KEY), (KEYSIZE) )
#define AES_SIZE   16
#define d2i_RSAPrivateKey(a, b, c)   new rsa_context
#define ERR_get_error()   "ERR_get_error() not supported"
#define MD5_CTX   md5_context
#define MD5_Final(OUT, CTX)   md5_finish( (CTX), (OUT) )
#define MD5_Init(CTX)   md5_starts( (CTX) )
#define MD5_Update(CTX, BUF, LEN)   md5_update( (CTX), (unsigned char *)(BUF), (LEN) )
#define RSA   rsa_context
#define RSA_blinding_off(IGNORE)
#define RSA_free(CTX)   rsa_free( CTX )
#define RSA_PKCS1_PADDING   1
#define RSA_size(CTX)   (CTX)->len
#define SHA1_Final(OUT, CTX)   sha1_finish( (CTX), (OUT) )
#define SHA1_Init(CTX)   sha1_starts( (CTX) )
#define SHA1_Update(CTX, BUF, LEN)   sha1_update( (CTX), (unsigned char *)(BUF), (LEN) )
#define SHA_CTX   sha1_context

Functions

int __RSA_Passthrough (void *output, void *input, int size)
rsa_contextd2i_RSA_PUBKEY (void *ignore, unsigned char **bufptr, int len)
int RSA_private_decrypt (int size, unsigned char *input, unsigned char *output, RSA *key, int ignore)
int RSA_private_encrypt (int size, unsigned char *input, unsigned char *output, RSA *key, int ignore)
int RSA_public_decrypt (int size, unsigned char *input, unsigned char *output, RSA *key, int ignore)
int RSA_public_encrypt (int size, unsigned char *input, unsigned char *output, RSA *key, int ignore)


Define Documentation

#define AES_BLOCK_SIZE   16

Definition at line 35 of file openssl.h.

#define AES_cbc_encrypt ( INPUT,
OUTPUT,
LEN,
CTX,
IV,
MODE   )     aes_crypt_cbc( (CTX), (MODE), (LEN), (IV), (INPUT), (OUTPUT) )

Definition at line 58 of file openssl.h.

#define AES_KEY   aes_context

Definition at line 36 of file openssl.h.

#define AES_set_decrypt_key ( KEY,
KEYSIZE,
CTX   )     aes_setkey_dec( (CTX), (KEY), (KEYSIZE) )

Definition at line 56 of file openssl.h.

#define AES_set_encrypt_key ( KEY,
KEYSIZE,
CTX   )     aes_setkey_enc( (CTX), (KEY), (KEYSIZE) )

Definition at line 54 of file openssl.h.

#define AES_SIZE   16

Definition at line 34 of file openssl.h.

#define d2i_RSAPrivateKey ( a,
b,
 )     new rsa_context

Definition at line 121 of file openssl.h.

 
#define ERR_get_error (  )     "ERR_get_error() not supported"

Definition at line 118 of file openssl.h.

#define MD5_CTX   md5_context

Definition at line 37 of file openssl.h.

#define MD5_Final ( OUT,
CTX   )     md5_finish( (CTX), (OUT) )

Definition at line 51 of file openssl.h.

#define MD5_Init ( CTX   )     md5_starts( (CTX) )

Definition at line 47 of file openssl.h.

#define MD5_Update ( CTX,
BUF,
LEN   )     md5_update( (CTX), (unsigned char *)(BUF), (LEN) )

Definition at line 49 of file openssl.h.

#define RSA   rsa_context

Definition at line 114 of file openssl.h.

#define RSA_blinding_off ( IGNORE   ) 

Definition at line 119 of file openssl.h.

#define RSA_free ( CTX   )     rsa_free( CTX )

Definition at line 117 of file openssl.h.

#define RSA_PKCS1_PADDING   1

Definition at line 115 of file openssl.h.

#define RSA_size ( CTX   )     (CTX)->len

Definition at line 116 of file openssl.h.

Referenced by RSA_private_encrypt(), and RSA_public_encrypt().

#define SHA1_Final ( OUT,
CTX   )     sha1_finish( (CTX), (OUT) )

Definition at line 44 of file openssl.h.

#define SHA1_Init ( CTX   )     sha1_starts( (CTX) )

Definition at line 40 of file openssl.h.

#define SHA1_Update ( CTX,
BUF,
LEN   )     sha1_update( (CTX), (unsigned char *)(BUF), (LEN) )

Definition at line 42 of file openssl.h.

#define SHA_CTX   sha1_context

Definition at line 38 of file openssl.h.


Function Documentation

int __RSA_Passthrough ( void *  output,
void *  input,
int  size 
) [inline]

Definition at line 64 of file openssl.h.

00065 {
00066     memcpy( output, input, size );
00067     return size;
00068 }

rsa_context* d2i_RSA_PUBKEY ( void *  ignore,
unsigned char **  bufptr,
int  len 
) [inline]

Definition at line 70 of file openssl.h.

References rsa_context::E, rsa_context::len, mpi_msb(), mpi_read_binary(), and rsa_context::N.

00072 {
00073     unsigned char *buffer = *(unsigned char **) bufptr;
00074     rsa_context *rsa;
00075     
00076     /*
00077      * Not a general-purpose parser: only parses public key from *exactly*
00078      *   openssl genrsa -out privkey.pem 512 (or 1024)
00079      *   openssl rsa -in privkey.pem -out privatekey.der -outform der
00080      *   openssl rsa -in privkey.pem -out pubkey.der -outform der -pubout
00081      *
00082      * TODO: make a general-purpose parse
00083      */
00084     if( ignore != 0 || ( len != 94 && len != 162 ) )
00085         return( 0 );
00086 
00087     rsa = (rsa_context *) malloc( sizeof( rsa_rsa ) );
00088     if( rsa == NULL )
00089         return( 0 );
00090 
00091     memset( rsa, 0, sizeof( rsa_context ) );
00092 
00093     if( ( len ==  94 && 
00094           mpi_read_binary( &rsa->N, &buffer[ 25],  64 ) == 0 &&
00095           mpi_read_binary( &rsa->E, &buffer[ 91],   3 ) == 0 ) ||
00096         ( len == 162 &&
00097           mpi_read_binary( &rsa->N, &buffer[ 29], 128 ) == 0 ) &&
00098           mpi_read_binary( &rsa->E, &buffer[159],   3 ) == 0 )
00099     {
00100         /*
00101          * key read successfully
00102          */
00103         rsa->len = ( mpi_msb( &rsa->N ) + 7 ) >> 3;
00104         return( rsa );
00105     }
00106     else
00107     {
00108         memset( rsa, 0, sizeof( rsa_context ) );
00109         free( rsa );
00110         return( 0 );
00111     }
00112 }

int RSA_private_decrypt ( int  size,
unsigned char *  input,
unsigned char *  output,
RSA *  key,
int  ignore 
) [inline]

Definition at line 124 of file openssl.h.

References rsa_pkcs1_decrypt(), and RSA_PRIVATE.

00124 { int outsize=size; if( !rsa_pkcs1_decrypt( key, RSA_PRIVATE, &outsize, input, output ) ) return outsize; else return -1; }

int RSA_private_encrypt ( int  size,
unsigned char *  input,
unsigned char *  output,
RSA *  key,
int  ignore 
) [inline]

Definition at line 126 of file openssl.h.

References rsa_pkcs1_encrypt(), RSA_PRIVATE, and RSA_size.

00126 { if( !rsa_pkcs1_encrypt( key, RSA_PRIVATE, size, input, output ) ) return RSA_size(key); else return -1; }

int RSA_public_decrypt ( int  size,
unsigned char *  input,
unsigned char *  output,
RSA *  key,
int  ignore 
) [inline]

Definition at line 123 of file openssl.h.

References rsa_pkcs1_decrypt(), and RSA_PUBLIC.

00123 { int outsize=size; if( !rsa_pkcs1_decrypt( key, RSA_PUBLIC,  &outsize, input, output ) ) return outsize; else return -1; }

int RSA_public_encrypt ( int  size,
unsigned char *  input,
unsigned char *  output,
RSA *  key,
int  ignore 
) [inline]

Definition at line 125 of file openssl.h.

References rsa_pkcs1_encrypt(), RSA_PUBLIC, and RSA_size.

00125 { if( !rsa_pkcs1_encrypt( key, RSA_PUBLIC,  size, input, output ) ) return RSA_size(key); else return -1; }


Generated on Fri Feb 19 02:31:59 2010 for AVR32 - POLARSSL - Self Test Example by  doxygen 1.5.5