mirror of https://github.com/lukechilds/node.git
Fedor Indutny
11 years ago
178 changed files with 3475 additions and 6032 deletions
File diff suppressed because it is too large
@ -1,466 +0,0 @@ |
|||||
/* crypto/evp/bio_ber.c */ |
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* This package is an SSL implementation written |
|
||||
* by Eric Young (eay@cryptsoft.com). |
|
||||
* The implementation was written so as to conform with Netscapes SSL. |
|
||||
* |
|
||||
* This library is free for commercial and non-commercial use as long as |
|
||||
* the following conditions are aheared to. The following conditions |
|
||||
* apply to all code found in this distribution, be it the RC4, RSA, |
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation |
|
||||
* included with this distribution is covered by the same copyright terms |
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com). |
|
||||
* |
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in |
|
||||
* the code are not to be removed. |
|
||||
* If this package is used in a product, Eric Young should be given attribution |
|
||||
* as the author of the parts of the library used. |
|
||||
* This can be in the form of a textual message at program startup or |
|
||||
* in documentation (online or textual) provided with the package. |
|
||||
* |
|
||||
* Redistribution and use in source and binary forms, with or without |
|
||||
* modification, are permitted provided that the following conditions |
|
||||
* are met: |
|
||||
* 1. Redistributions of source code must retain the copyright |
|
||||
* notice, this list of conditions and the following disclaimer. |
|
||||
* 2. Redistributions in binary form must reproduce the above copyright |
|
||||
* notice, this list of conditions and the following disclaimer in the |
|
||||
* documentation and/or other materials provided with the distribution. |
|
||||
* 3. All advertising materials mentioning features or use of this software |
|
||||
* must display the following acknowledgement: |
|
||||
* "This product includes cryptographic software written by |
|
||||
* Eric Young (eay@cryptsoft.com)" |
|
||||
* The word 'cryptographic' can be left out if the rouines from the library |
|
||||
* being used are not cryptographic related :-). |
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from |
|
||||
* the apps directory (application code) you must include an acknowledgement: |
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" |
|
||||
* |
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND |
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
||||
* SUCH DAMAGE. |
|
||||
* |
|
||||
* The licence and distribution terms for any publically available version or |
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be |
|
||||
* copied and put under another distribution licence |
|
||||
* [including the GNU Public Licence.] |
|
||||
*/ |
|
||||
|
|
||||
#include <stdio.h> |
|
||||
#include <errno.h> |
|
||||
#include "cryptlib.h" |
|
||||
#include <openssl/buffer.h> |
|
||||
#include <openssl/evp.h> |
|
||||
|
|
||||
static int ber_write(BIO *h,char *buf,int num); |
|
||||
static int ber_read(BIO *h,char *buf,int size); |
|
||||
/*static int ber_puts(BIO *h,char *str); */ |
|
||||
/*static int ber_gets(BIO *h,char *str,int size); */ |
|
||||
static long ber_ctrl(BIO *h,int cmd,long arg1,char *arg2); |
|
||||
static int ber_new(BIO *h); |
|
||||
static int ber_free(BIO *data); |
|
||||
static long ber_callback_ctrl(BIO *h,int cmd,void *(*fp)()); |
|
||||
#define BER_BUF_SIZE (32) |
|
||||
|
|
||||
/* This is used to hold the state of the BER objects being read. */ |
|
||||
typedef struct ber_struct |
|
||||
{ |
|
||||
int tag; |
|
||||
int class; |
|
||||
long length; |
|
||||
int inf; |
|
||||
int num_left; |
|
||||
int depth; |
|
||||
} BER_CTX; |
|
||||
|
|
||||
typedef struct bio_ber_struct |
|
||||
{ |
|
||||
int tag; |
|
||||
int class; |
|
||||
long length; |
|
||||
int inf; |
|
||||
|
|
||||
/* most of the following are used when doing non-blocking IO */ |
|
||||
/* reading */ |
|
||||
long num_left; /* number of bytes still to read/write in block */ |
|
||||
int depth; /* used with indefinite encoding. */ |
|
||||
int finished; /* No more read data */ |
|
||||
|
|
||||
/* writting */ |
|
||||
char *w_addr; |
|
||||
int w_offset; |
|
||||
int w_left; |
|
||||
|
|
||||
int buf_len; |
|
||||
int buf_off; |
|
||||
unsigned char buf[BER_BUF_SIZE]; |
|
||||
} BIO_BER_CTX; |
|
||||
|
|
||||
static BIO_METHOD methods_ber= |
|
||||
{ |
|
||||
BIO_TYPE_CIPHER,"cipher", |
|
||||
ber_write, |
|
||||
ber_read, |
|
||||
NULL, /* ber_puts, */ |
|
||||
NULL, /* ber_gets, */ |
|
||||
ber_ctrl, |
|
||||
ber_new, |
|
||||
ber_free, |
|
||||
ber_callback_ctrl, |
|
||||
}; |
|
||||
|
|
||||
BIO_METHOD *BIO_f_ber(void) |
|
||||
{ |
|
||||
return(&methods_ber); |
|
||||
} |
|
||||
|
|
||||
static int ber_new(BIO *bi) |
|
||||
{ |
|
||||
BIO_BER_CTX *ctx; |
|
||||
|
|
||||
ctx=(BIO_BER_CTX *)OPENSSL_malloc(sizeof(BIO_BER_CTX)); |
|
||||
if (ctx == NULL) return(0); |
|
||||
|
|
||||
memset((char *)ctx,0,sizeof(BIO_BER_CTX)); |
|
||||
|
|
||||
bi->init=0; |
|
||||
bi->ptr=(char *)ctx; |
|
||||
bi->flags=0; |
|
||||
return(1); |
|
||||
} |
|
||||
|
|
||||
static int ber_free(BIO *a) |
|
||||
{ |
|
||||
BIO_BER_CTX *b; |
|
||||
|
|
||||
if (a == NULL) return(0); |
|
||||
b=(BIO_BER_CTX *)a->ptr; |
|
||||
OPENSSL_cleanse(a->ptr,sizeof(BIO_BER_CTX)); |
|
||||
OPENSSL_free(a->ptr); |
|
||||
a->ptr=NULL; |
|
||||
a->init=0; |
|
||||
a->flags=0; |
|
||||
return(1); |
|
||||
} |
|
||||
|
|
||||
int bio_ber_get_header(BIO *bio, BIO_BER_CTX *ctx) |
|
||||
{ |
|
||||
char buf[64]; |
|
||||
int i,j,n; |
|
||||
int ret; |
|
||||
unsigned char *p; |
|
||||
unsigned long length |
|
||||
int tag; |
|
||||
int class; |
|
||||
long max; |
|
||||
|
|
||||
BIO_clear_retry_flags(b); |
|
||||
|
|
||||
/* Pack the buffer down if there is a hole at the front */ |
|
||||
if (ctx->buf_off != 0) |
|
||||
{ |
|
||||
p=ctx->buf; |
|
||||
j=ctx->buf_off; |
|
||||
n=ctx->buf_len-j; |
|
||||
for (i=0; i<n; i++) |
|
||||
{ |
|
||||
p[0]=p[j]; |
|
||||
p++; |
|
||||
} |
|
||||
ctx->buf_len-j; |
|
||||
ctx->buf_off=0; |
|
||||
} |
|
||||
|
|
||||
/* If there is more room, read some more data */ |
|
||||
i=BER_BUF_SIZE-ctx->buf_len; |
|
||||
if (i) |
|
||||
{ |
|
||||
i=BIO_read(bio->next_bio,&(ctx->buf[ctx->buf_len]),i); |
|
||||
if (i <= 0) |
|
||||
{ |
|
||||
BIO_copy_next_retry(b); |
|
||||
return(i); |
|
||||
} |
|
||||
else |
|
||||
ctx->buf_len+=i; |
|
||||
} |
|
||||
|
|
||||
max=ctx->buf_len; |
|
||||
p=ctx->buf; |
|
||||
ret=ASN1_get_object(&p,&length,&tag,&class,max); |
|
||||
|
|
||||
if (ret & 0x80) |
|
||||
{ |
|
||||
if ((ctx->buf_len < BER_BUF_SIZE) && |
|
||||
(ERR_GET_REASON(ERR_peek_error()) == ASN1_R_TOO_LONG)) |
|
||||
{ |
|
||||
ERR_clear_error(); /* clear the error */ |
|
||||
BIO_set_retry_read(b); |
|
||||
} |
|
||||
return(-1); |
|
||||
} |
|
||||
|
|
||||
/* We have no error, we have a header, so make use of it */ |
|
||||
|
|
||||
if ((ctx->tag >= 0) && (ctx->tag != tag)) |
|
||||
{ |
|
||||
BIOerr(BIO_F_BIO_BER_GET_HEADER,BIO_R_TAG_MISMATCH); |
|
||||
sprintf(buf,"tag=%d, got %d",ctx->tag,tag); |
|
||||
ERR_add_error_data(1,buf); |
|
||||
return(-1); |
|
||||
} |
|
||||
if (ret & 0x01) |
|
||||
if (ret & V_ASN1_CONSTRUCTED) |
|
||||
} |
|
||||
|
|
||||
static int ber_read(BIO *b, char *out, int outl) |
|
||||
{ |
|
||||
int ret=0,i,n; |
|
||||
BIO_BER_CTX *ctx; |
|
||||
|
|
||||
BIO_clear_retry_flags(b); |
|
||||
|
|
||||
if (out == NULL) return(0); |
|
||||
ctx=(BIO_BER_CTX *)b->ptr; |
|
||||
|
|
||||
if ((ctx == NULL) || (b->next_bio == NULL)) return(0); |
|
||||
|
|
||||
if (ctx->finished) return(0); |
|
||||
|
|
||||
again: |
|
||||
/* First see if we are half way through reading a block */ |
|
||||
if (ctx->num_left > 0) |
|
||||
{ |
|
||||
if (ctx->num_left < outl) |
|
||||
n=ctx->num_left; |
|
||||
else |
|
||||
n=outl; |
|
||||
i=BIO_read(b->next_bio,out,n); |
|
||||
if (i <= 0) |
|
||||
{ |
|
||||
BIO_copy_next_retry(b); |
|
||||
return(i); |
|
||||
} |
|
||||
ctx->num_left-=i; |
|
||||
outl-=i; |
|
||||
ret+=i; |
|
||||
if (ctx->num_left <= 0) |
|
||||
{ |
|
||||
ctx->depth--; |
|
||||
if (ctx->depth <= 0) |
|
||||
ctx->finished=1; |
|
||||
} |
|
||||
if (outl <= 0) |
|
||||
return(ret); |
|
||||
else |
|
||||
goto again; |
|
||||
} |
|
||||
else /* we need to read another BER header */ |
|
||||
{ |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
static int ber_write(BIO *b, char *in, int inl) |
|
||||
{ |
|
||||
int ret=0,n,i; |
|
||||
BIO_ENC_CTX *ctx; |
|
||||
|
|
||||
ctx=(BIO_ENC_CTX *)b->ptr; |
|
||||
ret=inl; |
|
||||
|
|
||||
BIO_clear_retry_flags(b); |
|
||||
n=ctx->buf_len-ctx->buf_off; |
|
||||
while (n > 0) |
|
||||
{ |
|
||||
i=BIO_write(b->next_bio,&(ctx->buf[ctx->buf_off]),n); |
|
||||
if (i <= 0) |
|
||||
{ |
|
||||
BIO_copy_next_retry(b); |
|
||||
return(i); |
|
||||
} |
|
||||
ctx->buf_off+=i; |
|
||||
n-=i; |
|
||||
} |
|
||||
/* at this point all pending data has been written */ |
|
||||
|
|
||||
if ((in == NULL) || (inl <= 0)) return(0); |
|
||||
|
|
||||
ctx->buf_off=0; |
|
||||
while (inl > 0) |
|
||||
{ |
|
||||
n=(inl > ENC_BLOCK_SIZE)?ENC_BLOCK_SIZE:inl; |
|
||||
EVP_CipherUpdate(&(ctx->cipher), |
|
||||
(unsigned char *)ctx->buf,&ctx->buf_len, |
|
||||
(unsigned char *)in,n); |
|
||||
inl-=n; |
|
||||
in+=n; |
|
||||
|
|
||||
ctx->buf_off=0; |
|
||||
n=ctx->buf_len; |
|
||||
while (n > 0) |
|
||||
{ |
|
||||
i=BIO_write(b->next_bio,&(ctx->buf[ctx->buf_off]),n); |
|
||||
if (i <= 0) |
|
||||
{ |
|
||||
BIO_copy_next_retry(b); |
|
||||
return(i); |
|
||||
} |
|
||||
n-=i; |
|
||||
ctx->buf_off+=i; |
|
||||
} |
|
||||
ctx->buf_len=0; |
|
||||
ctx->buf_off=0; |
|
||||
} |
|
||||
BIO_copy_next_retry(b); |
|
||||
return(ret); |
|
||||
} |
|
||||
|
|
||||
static long ber_ctrl(BIO *b, int cmd, long num, char *ptr) |
|
||||
{ |
|
||||
BIO *dbio; |
|
||||
BIO_ENC_CTX *ctx,*dctx; |
|
||||
long ret=1; |
|
||||
int i; |
|
||||
|
|
||||
ctx=(BIO_ENC_CTX *)b->ptr; |
|
||||
|
|
||||
switch (cmd) |
|
||||
{ |
|
||||
case BIO_CTRL_RESET: |
|
||||
ctx->ok=1; |
|
||||
ctx->finished=0; |
|
||||
EVP_CipherInit_ex(&(ctx->cipher),NULL,NULL,NULL,NULL, |
|
||||
ctx->cipher.berrypt); |
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr); |
|
||||
break; |
|
||||
case BIO_CTRL_EOF: /* More to read */ |
|
||||
if (ctx->cont <= 0) |
|
||||
ret=1; |
|
||||
else |
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr); |
|
||||
break; |
|
||||
case BIO_CTRL_WPENDING: |
|
||||
ret=ctx->buf_len-ctx->buf_off; |
|
||||
if (ret <= 0) |
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr); |
|
||||
break; |
|
||||
case BIO_CTRL_PENDING: /* More to read in buffer */ |
|
||||
ret=ctx->buf_len-ctx->buf_off; |
|
||||
if (ret <= 0) |
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr); |
|
||||
break; |
|
||||
case BIO_CTRL_FLUSH: |
|
||||
/* do a final write */ |
|
||||
again: |
|
||||
while (ctx->buf_len != ctx->buf_off) |
|
||||
{ |
|
||||
i=ber_write(b,NULL,0); |
|
||||
if (i < 0) |
|
||||
{ |
|
||||
ret=i; |
|
||||
break; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
if (!ctx->finished) |
|
||||
{ |
|
||||
ctx->finished=1; |
|
||||
ctx->buf_off=0; |
|
||||
ret=EVP_CipherFinal_ex(&(ctx->cipher), |
|
||||
(unsigned char *)ctx->buf, |
|
||||
&(ctx->buf_len)); |
|
||||
ctx->ok=(int)ret; |
|
||||
if (ret <= 0) break; |
|
||||
|
|
||||
/* push out the bytes */ |
|
||||
goto again; |
|
||||
} |
|
||||
|
|
||||
/* Finally flush the underlying BIO */ |
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr); |
|
||||
break; |
|
||||
case BIO_C_GET_CIPHER_STATUS: |
|
||||
ret=(long)ctx->ok; |
|
||||
break; |
|
||||
case BIO_C_DO_STATE_MACHINE: |
|
||||
BIO_clear_retry_flags(b); |
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr); |
|
||||
BIO_copy_next_retry(b); |
|
||||
break; |
|
||||
|
|
||||
case BIO_CTRL_DUP: |
|
||||
dbio=(BIO *)ptr; |
|
||||
dctx=(BIO_ENC_CTX *)dbio->ptr; |
|
||||
memcpy(&(dctx->cipher),&(ctx->cipher),sizeof(ctx->cipher)); |
|
||||
dbio->init=1; |
|
||||
break; |
|
||||
default: |
|
||||
ret=BIO_ctrl(b->next_bio,cmd,num,ptr); |
|
||||
break; |
|
||||
} |
|
||||
return(ret); |
|
||||
} |
|
||||
|
|
||||
static long ber_callback_ctrl(BIO *b, int cmd, void *(*fp)()) |
|
||||
{ |
|
||||
long ret=1; |
|
||||
|
|
||||
if (b->next_bio == NULL) return(0); |
|
||||
switch (cmd) |
|
||||
{ |
|
||||
default: |
|
||||
ret=BIO_callback_ctrl(b->next_bio,cmd,fp); |
|
||||
break; |
|
||||
} |
|
||||
return(ret); |
|
||||
} |
|
||||
|
|
||||
/*
|
|
||||
void BIO_set_cipher_ctx(b,c) |
|
||||
BIO *b; |
|
||||
EVP_CIPHER_ctx *c; |
|
||||
{ |
|
||||
if (b == NULL) return; |
|
||||
|
|
||||
if ((b->callback != NULL) && |
|
||||
(b->callback(b,BIO_CB_CTRL,(char *)c,BIO_CTRL_SET,e,0L) <= 0)) |
|
||||
return; |
|
||||
|
|
||||
b->init=1; |
|
||||
ctx=(BIO_ENC_CTX *)b->ptr; |
|
||||
memcpy(ctx->cipher,c,sizeof(EVP_CIPHER_CTX)); |
|
||||
|
|
||||
if (b->callback != NULL) |
|
||||
b->callback(b,BIO_CB_CTRL,(char *)c,BIO_CTRL_SET,e,1L); |
|
||||
} |
|
||||
*/ |
|
||||
|
|
||||
void BIO_set_cipher(BIO *b, EVP_CIPHER *c, unsigned char *k, unsigned char *i, |
|
||||
int e) |
|
||||
{ |
|
||||
BIO_ENC_CTX *ctx; |
|
||||
|
|
||||
if (b == NULL) return; |
|
||||
|
|
||||
if ((b->callback != NULL) && |
|
||||
(b->callback(b,BIO_CB_CTRL,(char *)c,BIO_CTRL_SET,e,0L) <= 0)) |
|
||||
return; |
|
||||
|
|
||||
b->init=1; |
|
||||
ctx=(BIO_ENC_CTX *)b->ptr; |
|
||||
EVP_CipherInit_ex(&(ctx->cipher),c,NULL,k,i,e); |
|
||||
|
|
||||
if (b->callback != NULL) |
|
||||
b->callback(b,BIO_CB_CTRL,(char *)c,BIO_CTRL_SET,e,1L); |
|
||||
} |
|
||||
|
|
@ -1,248 +0,0 @@ |
|||||
/* crypto/pkcs7/verify.c */ |
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* This package is an SSL implementation written |
|
||||
* by Eric Young (eay@cryptsoft.com). |
|
||||
* The implementation was written so as to conform with Netscapes SSL. |
|
||||
* |
|
||||
* This library is free for commercial and non-commercial use as long as |
|
||||
* the following conditions are aheared to. The following conditions |
|
||||
* apply to all code found in this distribution, be it the RC4, RSA, |
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation |
|
||||
* included with this distribution is covered by the same copyright terms |
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com). |
|
||||
* |
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in |
|
||||
* the code are not to be removed. |
|
||||
* If this package is used in a product, Eric Young should be given attribution |
|
||||
* as the author of the parts of the library used. |
|
||||
* This can be in the form of a textual message at program startup or |
|
||||
* in documentation (online or textual) provided with the package. |
|
||||
* |
|
||||
* Redistribution and use in source and binary forms, with or without |
|
||||
* modification, are permitted provided that the following conditions |
|
||||
* are met: |
|
||||
* 1. Redistributions of source code must retain the copyright |
|
||||
* notice, this list of conditions and the following disclaimer. |
|
||||
* 2. Redistributions in binary form must reproduce the above copyright |
|
||||
* notice, this list of conditions and the following disclaimer in the |
|
||||
* documentation and/or other materials provided with the distribution. |
|
||||
* 3. All advertising materials mentioning features or use of this software |
|
||||
* must display the following acknowledgement: |
|
||||
* "This product includes cryptographic software written by |
|
||||
* Eric Young (eay@cryptsoft.com)" |
|
||||
* The word 'cryptographic' can be left out if the rouines from the library |
|
||||
* being used are not cryptographic related :-). |
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from |
|
||||
* the apps directory (application code) you must include an acknowledgement: |
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" |
|
||||
* |
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND |
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
||||
* SUCH DAMAGE. |
|
||||
* |
|
||||
* The licence and distribution terms for any publically available version or |
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be |
|
||||
* copied and put under another distribution licence |
|
||||
* [including the GNU Public Licence.] |
|
||||
*/ |
|
||||
#include <stdio.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <string.h> |
|
||||
#include <openssl/bio.h> |
|
||||
#include <openssl/x509.h> |
|
||||
#include <openssl/pem.h> |
|
||||
#include <openssl/err.h> |
|
||||
#include <openssl/asn1.h> |
|
||||
|
|
||||
int verify_callback(int ok, X509_STORE_CTX *ctx); |
|
||||
|
|
||||
BIO *bio_err=NULL; |
|
||||
|
|
||||
int main(argc,argv) |
|
||||
int argc; |
|
||||
char *argv[]; |
|
||||
{ |
|
||||
char *keyfile=NULL; |
|
||||
BIO *in; |
|
||||
EVP_PKEY *pkey; |
|
||||
X509 *x509; |
|
||||
PKCS7 *p7; |
|
||||
PKCS7_SIGNER_INFO *si; |
|
||||
X509_STORE_CTX cert_ctx; |
|
||||
X509_STORE *cert_store=NULL; |
|
||||
BIO *data,*detached=NULL,*p7bio=NULL; |
|
||||
char buf[1024*4]; |
|
||||
unsigned char *pp; |
|
||||
int i,printit=0; |
|
||||
STACK_OF(PKCS7_SIGNER_INFO) *sk; |
|
||||
|
|
||||
OpenSSL_add_all_algorithms(); |
|
||||
bio_err=BIO_new_fp(stderr,BIO_NOCLOSE); |
|
||||
|
|
||||
data=BIO_new(BIO_s_file()); |
|
||||
pp=NULL; |
|
||||
while (argc > 1) |
|
||||
{ |
|
||||
argc--; |
|
||||
argv++; |
|
||||
if (strcmp(argv[0],"-p") == 0) |
|
||||
{ |
|
||||
printit=1; |
|
||||
} |
|
||||
else if ((strcmp(argv[0],"-k") == 0) && (argc >= 2)) { |
|
||||
keyfile = argv[1]; |
|
||||
argc-=1; |
|
||||
argv+=1; |
|
||||
} else if ((strcmp(argv[0],"-d") == 0) && (argc >= 2)) |
|
||||
{ |
|
||||
detached=BIO_new(BIO_s_file()); |
|
||||
if (!BIO_read_filename(detached,argv[1])) |
|
||||
goto err; |
|
||||
argc-=1; |
|
||||
argv+=1; |
|
||||
} |
|
||||
else break; |
|
||||
} |
|
||||
|
|
||||
if (!BIO_read_filename(data,argv[0])) goto err; |
|
||||
|
|
||||
if(!keyfile) { |
|
||||
fprintf(stderr, "No private key file specified\n"); |
|
||||
goto err; |
|
||||
} |
|
||||
|
|
||||
if ((in=BIO_new_file(keyfile,"r")) == NULL) goto err; |
|
||||
if ((x509=PEM_read_bio_X509(in,NULL,NULL,NULL)) == NULL) goto err; |
|
||||
BIO_reset(in); |
|
||||
if ((pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,NULL)) == NULL) |
|
||||
goto err; |
|
||||
BIO_free(in); |
|
||||
|
|
||||
if (pp == NULL) |
|
||||
BIO_set_fp(data,stdin,BIO_NOCLOSE); |
|
||||
|
|
||||
|
|
||||
/* Load the PKCS7 object from a file */ |
|
||||
if ((p7=PEM_read_bio_PKCS7(data,NULL,NULL,NULL)) == NULL) goto err; |
|
||||
|
|
||||
|
|
||||
|
|
||||
/* This stuff is being setup for certificate verification.
|
|
||||
* When using SSL, it could be replaced with a |
|
||||
* cert_stre=SSL_CTX_get_cert_store(ssl_ctx); */ |
|
||||
cert_store=X509_STORE_new(); |
|
||||
X509_STORE_set_default_paths(cert_store); |
|
||||
X509_STORE_load_locations(cert_store,NULL,"../../certs"); |
|
||||
X509_STORE_set_verify_cb_func(cert_store,verify_callback); |
|
||||
|
|
||||
ERR_clear_error(); |
|
||||
|
|
||||
/* We need to process the data */ |
|
||||
/* We cannot support detached encryption */ |
|
||||
p7bio=PKCS7_dataDecode(p7,pkey,detached,x509); |
|
||||
|
|
||||
if (p7bio == NULL) |
|
||||
{ |
|
||||
printf("problems decoding\n"); |
|
||||
goto err; |
|
||||
} |
|
||||
|
|
||||
/* We now have to 'read' from p7bio to calculate digests etc. */ |
|
||||
for (;;) |
|
||||
{ |
|
||||
i=BIO_read(p7bio,buf,sizeof(buf)); |
|
||||
/* print it? */ |
|
||||
if (i <= 0) break; |
|
||||
fwrite(buf,1, i, stdout); |
|
||||
} |
|
||||
|
|
||||
/* We can now verify signatures */ |
|
||||
sk=PKCS7_get_signer_info(p7); |
|
||||
if (sk == NULL) |
|
||||
{ |
|
||||
fprintf(stderr, "there are no signatures on this data\n"); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
/* Ok, first we need to, for each subject entry,
|
|
||||
* see if we can verify */ |
|
||||
ERR_clear_error(); |
|
||||
for (i=0; i<sk_PKCS7_SIGNER_INFO_num(sk); i++) |
|
||||
{ |
|
||||
si=sk_PKCS7_SIGNER_INFO_value(sk,i); |
|
||||
i=PKCS7_dataVerify(cert_store,&cert_ctx,p7bio,p7,si); |
|
||||
if (i <= 0) |
|
||||
goto err; |
|
||||
else |
|
||||
fprintf(stderr,"Signature verified\n"); |
|
||||
} |
|
||||
} |
|
||||
X509_STORE_free(cert_store); |
|
||||
|
|
||||
exit(0); |
|
||||
err: |
|
||||
ERR_load_crypto_strings(); |
|
||||
ERR_print_errors_fp(stderr); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
/* should be X509 * but we can just have them as char *. */ |
|
||||
int verify_callback(int ok, X509_STORE_CTX *ctx) |
|
||||
{ |
|
||||
char buf[256]; |
|
||||
X509 *err_cert; |
|
||||
int err,depth; |
|
||||
|
|
||||
err_cert=X509_STORE_CTX_get_current_cert(ctx); |
|
||||
err= X509_STORE_CTX_get_error(ctx); |
|
||||
depth= X509_STORE_CTX_get_error_depth(ctx); |
|
||||
|
|
||||
X509_NAME_oneline(X509_get_subject_name(err_cert),buf,256); |
|
||||
BIO_printf(bio_err,"depth=%d %s\n",depth,buf); |
|
||||
if (!ok) |
|
||||
{ |
|
||||
BIO_printf(bio_err,"verify error:num=%d:%s\n",err, |
|
||||
X509_verify_cert_error_string(err)); |
|
||||
if (depth < 6) |
|
||||
{ |
|
||||
ok=1; |
|
||||
X509_STORE_CTX_set_error(ctx,X509_V_OK); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
ok=0; |
|
||||
X509_STORE_CTX_set_error(ctx,X509_V_ERR_CERT_CHAIN_TOO_LONG); |
|
||||
} |
|
||||
} |
|
||||
switch (ctx->error) |
|
||||
{ |
|
||||
case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: |
|
||||
X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert),buf,256); |
|
||||
BIO_printf(bio_err,"issuer= %s\n",buf); |
|
||||
break; |
|
||||
case X509_V_ERR_CERT_NOT_YET_VALID: |
|
||||
case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: |
|
||||
BIO_printf(bio_err,"notBefore="); |
|
||||
ASN1_UTCTIME_print(bio_err,X509_get_notBefore(ctx->current_cert)); |
|
||||
BIO_printf(bio_err,"\n"); |
|
||||
break; |
|
||||
case X509_V_ERR_CERT_HAS_EXPIRED: |
|
||||
case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: |
|
||||
BIO_printf(bio_err,"notAfter="); |
|
||||
ASN1_UTCTIME_print(bio_err,X509_get_notAfter(ctx->current_cert)); |
|
||||
BIO_printf(bio_err,"\n"); |
|
||||
break; |
|
||||
} |
|
||||
BIO_printf(bio_err,"verify return:%d\n",ok); |
|
||||
return(ok); |
|
||||
} |
|
@ -1,15 +0,0 @@ |
|||||
|
|
||||
MIAGCSqGSIb3DQEHA6CAMIACAQAxggHmMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEG |
|
||||
A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD |
|
||||
ExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR+MA0GCSqGSIb3DQEBAQUABEC2vXI1xQDW6lUHM3zQ |
|
||||
/9uBEBOO5A3TtkrklAXq7v01gsIC21t52qSk36REXY+slhNZ0OQ349tgkTsoETHFLoEwMIHw |
|
||||
AgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMI |
|
||||
QnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU |
|
||||
UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR9MA0G |
|
||||
CSqGSIb3DQEBAQUABEB8ujxbabxXUYJhopuDm3oDq4JNqX6Io4p3ro+ShqfIndsXTZ1v5a2N |
|
||||
WtLLCWlHn/habjBwZ/DgQgcKASbZ7QxNMIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIA |
|
||||
oAQIbsL5v1wX98KggAQoAaJ4WHm68fXY1WE5OIjfVBIDpO1K+i8dmKhjnAjrjoyZ9Bwc8rDL |
|
||||
lgQg4CXb805h5xl+GfvSwUaHJayte1m2mcOhs3J2YyqbQ+MEIMIiJQccmhO3oDKm36CFvYR8 |
|
||||
5PjpclVcZyX2ngbwPFMnBAgy0clOAE6UKAAAAAAAAAAAAAA= |
|
||||
|
|
@ -1,24 +0,0 @@ |
|||||
int PKCS7_set_content_type(PKCS7 *p7, int type); |
|
||||
Call to set the type of PKCS7 object we are working on |
|
||||
|
|
||||
int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, |
|
||||
EVP_MD *dgst); |
|
||||
Use this to setup a signer info |
|
||||
There will also be functions to add signed and unsigned attributes. |
|
||||
|
|
||||
int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); |
|
||||
Add a signer info to the content. |
|
||||
|
|
||||
int PKCS7_add_certificae(PKCS7 *p7, X509 *x509); |
|
||||
int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); |
|
||||
|
|
||||
---- |
|
||||
|
|
||||
p7=PKCS7_new(); |
|
||||
PKCS7_set_content_type(p7,NID_pkcs7_signed); |
|
||||
|
|
||||
signer=PKCS7_SINGNER_INFO_new(); |
|
||||
PKCS7_SIGNER_INFO_set(signer,x509,pkey,EVP_md5()); |
|
||||
PKCS7_add_signer(py,signer); |
|
||||
|
|
||||
we are now setup. |
|
@ -1,174 +0,0 @@ |
|||||
/* crypto/pkcs7/enc.c */ |
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* This package is an SSL implementation written |
|
||||
* by Eric Young (eay@cryptsoft.com). |
|
||||
* The implementation was written so as to conform with Netscapes SSL. |
|
||||
* |
|
||||
* This library is free for commercial and non-commercial use as long as |
|
||||
* the following conditions are aheared to. The following conditions |
|
||||
* apply to all code found in this distribution, be it the RC4, RSA, |
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation |
|
||||
* included with this distribution is covered by the same copyright terms |
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com). |
|
||||
* |
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in |
|
||||
* the code are not to be removed. |
|
||||
* If this package is used in a product, Eric Young should be given attribution |
|
||||
* as the author of the parts of the library used. |
|
||||
* This can be in the form of a textual message at program startup or |
|
||||
* in documentation (online or textual) provided with the package. |
|
||||
* |
|
||||
* Redistribution and use in source and binary forms, with or without |
|
||||
* modification, are permitted provided that the following conditions |
|
||||
* are met: |
|
||||
* 1. Redistributions of source code must retain the copyright |
|
||||
* notice, this list of conditions and the following disclaimer. |
|
||||
* 2. Redistributions in binary form must reproduce the above copyright |
|
||||
* notice, this list of conditions and the following disclaimer in the |
|
||||
* documentation and/or other materials provided with the distribution. |
|
||||
* 3. All advertising materials mentioning features or use of this software |
|
||||
* must display the following acknowledgement: |
|
||||
* "This product includes cryptographic software written by |
|
||||
* Eric Young (eay@cryptsoft.com)" |
|
||||
* The word 'cryptographic' can be left out if the rouines from the library |
|
||||
* being used are not cryptographic related :-). |
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from |
|
||||
* the apps directory (application code) you must include an acknowledgement: |
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" |
|
||||
* |
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND |
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
||||
* SUCH DAMAGE. |
|
||||
* |
|
||||
* The licence and distribution terms for any publically available version or |
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be |
|
||||
* copied and put under another distribution licence |
|
||||
* [including the GNU Public Licence.] |
|
||||
*/ |
|
||||
#include <stdio.h> |
|
||||
#include <string.h> |
|
||||
#include <openssl/bio.h> |
|
||||
#include <openssl/x509.h> |
|
||||
#include <openssl/pem.h> |
|
||||
#include <openssl/err.h> |
|
||||
|
|
||||
int main(argc,argv) |
|
||||
int argc; |
|
||||
char *argv[]; |
|
||||
{ |
|
||||
X509 *x509; |
|
||||
PKCS7 *p7; |
|
||||
BIO *in; |
|
||||
BIO *data,*p7bio; |
|
||||
char buf[1024*4]; |
|
||||
int i; |
|
||||
int nodetach=1; |
|
||||
char *keyfile = NULL; |
|
||||
const EVP_CIPHER *cipher=NULL; |
|
||||
STACK_OF(X509) *recips=NULL; |
|
||||
|
|
||||
OpenSSL_add_all_algorithms(); |
|
||||
|
|
||||
data=BIO_new(BIO_s_file()); |
|
||||
while(argc > 1) |
|
||||
{ |
|
||||
if (strcmp(argv[1],"-nd") == 0) |
|
||||
{ |
|
||||
nodetach=1; |
|
||||
argv++; argc--; |
|
||||
} |
|
||||
else if ((strcmp(argv[1],"-c") == 0) && (argc >= 2)) { |
|
||||
if(!(cipher = EVP_get_cipherbyname(argv[2]))) { |
|
||||
fprintf(stderr, "Unknown cipher %s\n", argv[2]); |
|
||||
goto err; |
|
||||
} |
|
||||
argc-=2; |
|
||||
argv+=2; |
|
||||
} else if ((strcmp(argv[1],"-k") == 0) && (argc >= 2)) { |
|
||||
keyfile = argv[2]; |
|
||||
argc-=2; |
|
||||
argv+=2; |
|
||||
if (!(in=BIO_new_file(keyfile,"r"))) goto err; |
|
||||
if (!(x509=PEM_read_bio_X509(in,NULL,NULL,NULL))) |
|
||||
goto err; |
|
||||
if(!recips) recips = sk_X509_new_null(); |
|
||||
sk_X509_push(recips, x509); |
|
||||
BIO_free(in); |
|
||||
} else break; |
|
||||
} |
|
||||
|
|
||||
if(!recips) { |
|
||||
fprintf(stderr, "No recipients\n"); |
|
||||
goto err; |
|
||||
} |
|
||||
|
|
||||
if (!BIO_read_filename(data,argv[1])) goto err; |
|
||||
|
|
||||
p7=PKCS7_new(); |
|
||||
#if 0 |
|
||||
BIO_reset(in); |
|
||||
if ((pkey=PEM_read_bio_PrivateKey(in,NULL,NULL)) == NULL) goto err; |
|
||||
BIO_free(in); |
|
||||
PKCS7_set_type(p7,NID_pkcs7_signedAndEnveloped); |
|
||||
|
|
||||
if (PKCS7_add_signature(p7,x509,pkey,EVP_sha1()) == NULL) goto err; |
|
||||
/* we may want to add more */ |
|
||||
PKCS7_add_certificate(p7,x509); |
|
||||
#else |
|
||||
PKCS7_set_type(p7,NID_pkcs7_enveloped); |
|
||||
#endif |
|
||||
if(!cipher) { |
|
||||
#ifndef OPENSSL_NO_DES |
|
||||
cipher = EVP_des_ede3_cbc(); |
|
||||
#else |
|
||||
fprintf(stderr, "No cipher selected\n"); |
|
||||
goto err; |
|
||||
#endif |
|
||||
} |
|
||||
|
|
||||
if (!PKCS7_set_cipher(p7,cipher)) goto err; |
|
||||
for(i = 0; i < sk_X509_num(recips); i++) { |
|
||||
if (!PKCS7_add_recipient(p7,sk_X509_value(recips, i))) goto err; |
|
||||
} |
|
||||
sk_X509_pop_free(recips, X509_free); |
|
||||
|
|
||||
/* Set the content of the signed to 'data' */ |
|
||||
/* PKCS7_content_new(p7,NID_pkcs7_data); not used in envelope */ |
|
||||
|
|
||||
/* could be used, but not in this version :-)
|
|
||||
if (!nodetach) PKCS7_set_detached(p7,1); |
|
||||
*/ |
|
||||
|
|
||||
if ((p7bio=PKCS7_dataInit(p7,NULL)) == NULL) goto err; |
|
||||
|
|
||||
for (;;) |
|
||||
{ |
|
||||
i=BIO_read(data,buf,sizeof(buf)); |
|
||||
if (i <= 0) break; |
|
||||
BIO_write(p7bio,buf,i); |
|
||||
} |
|
||||
BIO_flush(p7bio); |
|
||||
|
|
||||
if (!PKCS7_dataFinal(p7,p7bio)) goto err; |
|
||||
BIO_free(p7bio); |
|
||||
|
|
||||
PEM_write_PKCS7(stdout,p7); |
|
||||
PKCS7_free(p7); |
|
||||
|
|
||||
exit(0); |
|
||||
err: |
|
||||
ERR_load_crypto_strings(); |
|
||||
ERR_print_errors_fp(stderr); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
@ -1,66 +0,0 @@ |
|||||
-----BEGIN PKCS7----- |
|
||||
MIAGCSqGSIb3DQEHA6CAMIACAQAxggHmMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEG |
|
||||
A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD |
|
||||
ExJERU1PIFpFUk8gVkFMVUUgQ0ECAgRuMA0GCSqGSIb3DQEBAQUABEDWak0y/5XZJhQJeCLo |
|
||||
KECcHXkTEbjzYkYNHIinbiPmRK4QbNfs9z2mA3z/c2ykQ4eAqFR2jyNrUMN/+I5XEiv6MIHw |
|
||||
AgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMI |
|
||||
QnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU |
|
||||
UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR9MA0G |
|
||||
CSqGSIb3DQEBAQUABEAWg9+KgtCjc77Jdj1Ve4wGgHjVHbbSYEA1ZqKFDoi15vSr9hfpHmC4 |
|
||||
ycZzcRo16JkTfolefiHZzmyjVz94vSN6MIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIA |
|
||||
oAQI7X4Tk4mcbV6ggASBsHl1mCaJ3RhXWlNPCgCRU53d7M5x6TDZRkvwdtdvW96m1lupT03F |
|
||||
XtonkBqk7oMkH7kGfs5/REQOPjx0QE2Ixmgt1W3szum82EZwA7pZNppcraK7W/odw/7bYZO+ |
|
||||
II3HPmRklE2N9qiu1LPaPUsnYogkO6SennyeL5tZ382vBweL/8pnG0qsbT1OBb65v+llnsjT |
|
||||
pa1T/p+fIx/iJJGE6K9fYFokC6gXLQ6ozXRdOu5oBDB8mPCYYvAqKycidM/MrGGUkpEtS4f0 |
|
||||
lS31PwQi5YTim8Ig3/TOwVpPX32i46FTuEIEIMHkD/OvpfwCCzXUHHJnKnKUAUvIsSY3vGBs |
|
||||
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 |
|
||||
-----END PKCS7----- |
|
@ -1,329 +0,0 @@ |
|||||
#include <stdio.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <string.h> |
|
||||
#include <openssl/pkcs7.h> |
|
||||
#include <openssl/asn1_mac.h> |
|
||||
#include <openssl/x509.h> |
|
||||
|
|
||||
int add_signed_time(PKCS7_SIGNER_INFO *si) |
|
||||
{ |
|
||||
ASN1_UTCTIME *sign_time; |
|
||||
|
|
||||
/* The last parameter is the amount to add/subtract from the current
|
|
||||
* time (in seconds) */ |
|
||||
sign_time=X509_gmtime_adj(NULL,0); |
|
||||
PKCS7_add_signed_attribute(si,NID_pkcs9_signingTime, |
|
||||
V_ASN1_UTCTIME,(char *)sign_time); |
|
||||
return(1); |
|
||||
} |
|
||||
|
|
||||
ASN1_UTCTIME *get_signed_time(PKCS7_SIGNER_INFO *si) |
|
||||
{ |
|
||||
ASN1_TYPE *so; |
|
||||
|
|
||||
so=PKCS7_get_signed_attribute(si,NID_pkcs9_signingTime); |
|
||||
if (so->type == V_ASN1_UTCTIME) |
|
||||
return so->value.utctime; |
|
||||
return NULL; |
|
||||
} |
|
||||
|
|
||||
static int signed_string_nid= -1; |
|
||||
|
|
||||
void add_signed_string(PKCS7_SIGNER_INFO *si, char *str) |
|
||||
{ |
|
||||
ASN1_OCTET_STRING *os; |
|
||||
|
|
||||
/* To a an object of OID 1.2.3.4.5, which is an octet string */ |
|
||||
if (signed_string_nid == -1) |
|
||||
signed_string_nid= |
|
||||
OBJ_create("1.2.3.4.5","OID_example","Our example OID"); |
|
||||
os=ASN1_OCTET_STRING_new(); |
|
||||
ASN1_OCTET_STRING_set(os,(unsigned char*)str,strlen(str)); |
|
||||
/* When we add, we do not free */ |
|
||||
PKCS7_add_signed_attribute(si,signed_string_nid, |
|
||||
V_ASN1_OCTET_STRING,(char *)os); |
|
||||
} |
|
||||
|
|
||||
int get_signed_string(PKCS7_SIGNER_INFO *si, char *buf, int len) |
|
||||
{ |
|
||||
ASN1_TYPE *so; |
|
||||
ASN1_OCTET_STRING *os; |
|
||||
int i; |
|
||||
|
|
||||
if (signed_string_nid == -1) |
|
||||
signed_string_nid= |
|
||||
OBJ_create("1.2.3.4.5","OID_example","Our example OID"); |
|
||||
/* To retrieve */ |
|
||||
so=PKCS7_get_signed_attribute(si,signed_string_nid); |
|
||||
if (so != NULL) |
|
||||
{ |
|
||||
if (so->type == V_ASN1_OCTET_STRING) |
|
||||
{ |
|
||||
os=so->value.octet_string; |
|
||||
i=os->length; |
|
||||
if ((i+1) > len) |
|
||||
i=len-1; |
|
||||
memcpy(buf,os->data,i); |
|
||||
return(i); |
|
||||
} |
|
||||
} |
|
||||
return(0); |
|
||||
} |
|
||||
|
|
||||
static int signed_seq2string_nid= -1; |
|
||||
/* ########################################### */ |
|
||||
int add_signed_seq2string(PKCS7_SIGNER_INFO *si, char *str1, char *str2) |
|
||||
{ |
|
||||
/* To add an object of OID 1.9.999, which is a sequence containing
|
|
||||
* 2 octet strings */ |
|
||||
unsigned char *p; |
|
||||
ASN1_OCTET_STRING *os1,*os2; |
|
||||
ASN1_STRING *seq; |
|
||||
unsigned char *data; |
|
||||
int i,total; |
|
||||
|
|
||||
if (signed_seq2string_nid == -1) |
|
||||
signed_seq2string_nid= |
|
||||
OBJ_create("1.9.9999","OID_example","Our example OID"); |
|
||||
|
|
||||
os1=ASN1_OCTET_STRING_new(); |
|
||||
os2=ASN1_OCTET_STRING_new(); |
|
||||
ASN1_OCTET_STRING_set(os1,(unsigned char*)str1,strlen(str1)); |
|
||||
ASN1_OCTET_STRING_set(os2,(unsigned char*)str1,strlen(str1)); |
|
||||
i =i2d_ASN1_OCTET_STRING(os1,NULL); |
|
||||
i+=i2d_ASN1_OCTET_STRING(os2,NULL); |
|
||||
total=ASN1_object_size(1,i,V_ASN1_SEQUENCE); |
|
||||
|
|
||||
data=malloc(total); |
|
||||
p=data; |
|
||||
ASN1_put_object(&p,1,i,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL); |
|
||||
i2d_ASN1_OCTET_STRING(os1,&p); |
|
||||
i2d_ASN1_OCTET_STRING(os2,&p); |
|
||||
|
|
||||
seq=ASN1_STRING_new(); |
|
||||
ASN1_STRING_set(seq,data,total); |
|
||||
free(data); |
|
||||
ASN1_OCTET_STRING_free(os1); |
|
||||
ASN1_OCTET_STRING_free(os2); |
|
||||
|
|
||||
PKCS7_add_signed_attribute(si,signed_seq2string_nid, |
|
||||
V_ASN1_SEQUENCE,(char *)seq); |
|
||||
return(1); |
|
||||
} |
|
||||
|
|
||||
/* For this case, I will malloc the return strings */ |
|
||||
int get_signed_seq2string(PKCS7_SIGNER_INFO *si, char **str1, char **str2) |
|
||||
{ |
|
||||
ASN1_TYPE *so; |
|
||||
|
|
||||
if (signed_seq2string_nid == -1) |
|
||||
signed_seq2string_nid= |
|
||||
OBJ_create("1.9.9999","OID_example","Our example OID"); |
|
||||
/* To retrieve */ |
|
||||
so=PKCS7_get_signed_attribute(si,signed_seq2string_nid); |
|
||||
if (so && (so->type == V_ASN1_SEQUENCE)) |
|
||||
{ |
|
||||
ASN1_const_CTX c; |
|
||||
ASN1_STRING *s; |
|
||||
long length; |
|
||||
ASN1_OCTET_STRING *os1,*os2; |
|
||||
|
|
||||
s=so->value.sequence; |
|
||||
c.p=ASN1_STRING_data(s); |
|
||||
c.max=c.p+ASN1_STRING_length(s); |
|
||||
if (!asn1_GetSequence(&c,&length)) goto err; |
|
||||
/* Length is the length of the seqence */ |
|
||||
|
|
||||
c.q=c.p; |
|
||||
if ((os1=d2i_ASN1_OCTET_STRING(NULL,&c.p,c.slen)) == NULL) |
|
||||
goto err; |
|
||||
c.slen-=(c.p-c.q); |
|
||||
|
|
||||
c.q=c.p; |
|
||||
if ((os2=d2i_ASN1_OCTET_STRING(NULL,&c.p,c.slen)) == NULL) |
|
||||
goto err; |
|
||||
c.slen-=(c.p-c.q); |
|
||||
|
|
||||
if (!asn1_const_Finish(&c)) goto err; |
|
||||
*str1=malloc(os1->length+1); |
|
||||
*str2=malloc(os2->length+1); |
|
||||
memcpy(*str1,os1->data,os1->length); |
|
||||
memcpy(*str2,os2->data,os2->length); |
|
||||
(*str1)[os1->length]='\0'; |
|
||||
(*str2)[os2->length]='\0'; |
|
||||
ASN1_OCTET_STRING_free(os1); |
|
||||
ASN1_OCTET_STRING_free(os2); |
|
||||
return(1); |
|
||||
} |
|
||||
err: |
|
||||
return(0); |
|
||||
} |
|
||||
|
|
||||
|
|
||||
/* #######################################
|
|
||||
* THE OTHER WAY TO DO THINGS |
|
||||
* ####################################### |
|
||||
*/ |
|
||||
X509_ATTRIBUTE *create_time(void) |
|
||||
{ |
|
||||
ASN1_UTCTIME *sign_time; |
|
||||
X509_ATTRIBUTE *ret; |
|
||||
|
|
||||
/* The last parameter is the amount to add/subtract from the current
|
|
||||
* time (in seconds) */ |
|
||||
sign_time=X509_gmtime_adj(NULL,0); |
|
||||
ret=X509_ATTRIBUTE_create(NID_pkcs9_signingTime, |
|
||||
V_ASN1_UTCTIME,(char *)sign_time); |
|
||||
return(ret); |
|
||||
} |
|
||||
|
|
||||
ASN1_UTCTIME *sk_get_time(STACK_OF(X509_ATTRIBUTE) *sk) |
|
||||
{ |
|
||||
ASN1_TYPE *so; |
|
||||
PKCS7_SIGNER_INFO si; |
|
||||
|
|
||||
si.auth_attr=sk; |
|
||||
so=PKCS7_get_signed_attribute(&si,NID_pkcs9_signingTime); |
|
||||
if (so->type == V_ASN1_UTCTIME) |
|
||||
return so->value.utctime; |
|
||||
return NULL; |
|
||||
} |
|
||||
|
|
||||
X509_ATTRIBUTE *create_string(char *str) |
|
||||
{ |
|
||||
ASN1_OCTET_STRING *os; |
|
||||
X509_ATTRIBUTE *ret; |
|
||||
|
|
||||
/* To a an object of OID 1.2.3.4.5, which is an octet string */ |
|
||||
if (signed_string_nid == -1) |
|
||||
signed_string_nid= |
|
||||
OBJ_create("1.2.3.4.5","OID_example","Our example OID"); |
|
||||
os=ASN1_OCTET_STRING_new(); |
|
||||
ASN1_OCTET_STRING_set(os,(unsigned char*)str,strlen(str)); |
|
||||
/* When we add, we do not free */ |
|
||||
ret=X509_ATTRIBUTE_create(signed_string_nid, |
|
||||
V_ASN1_OCTET_STRING,(char *)os); |
|
||||
return(ret); |
|
||||
} |
|
||||
|
|
||||
int sk_get_string(STACK_OF(X509_ATTRIBUTE) *sk, char *buf, int len) |
|
||||
{ |
|
||||
ASN1_TYPE *so; |
|
||||
ASN1_OCTET_STRING *os; |
|
||||
int i; |
|
||||
PKCS7_SIGNER_INFO si; |
|
||||
|
|
||||
si.auth_attr=sk; |
|
||||
|
|
||||
if (signed_string_nid == -1) |
|
||||
signed_string_nid= |
|
||||
OBJ_create("1.2.3.4.5","OID_example","Our example OID"); |
|
||||
/* To retrieve */ |
|
||||
so=PKCS7_get_signed_attribute(&si,signed_string_nid); |
|
||||
if (so != NULL) |
|
||||
{ |
|
||||
if (so->type == V_ASN1_OCTET_STRING) |
|
||||
{ |
|
||||
os=so->value.octet_string; |
|
||||
i=os->length; |
|
||||
if ((i+1) > len) |
|
||||
i=len-1; |
|
||||
memcpy(buf,os->data,i); |
|
||||
return(i); |
|
||||
} |
|
||||
} |
|
||||
return(0); |
|
||||
} |
|
||||
|
|
||||
X509_ATTRIBUTE *add_seq2string(PKCS7_SIGNER_INFO *si, char *str1, char *str2) |
|
||||
{ |
|
||||
/* To add an object of OID 1.9.999, which is a sequence containing
|
|
||||
* 2 octet strings */ |
|
||||
unsigned char *p; |
|
||||
ASN1_OCTET_STRING *os1,*os2; |
|
||||
ASN1_STRING *seq; |
|
||||
X509_ATTRIBUTE *ret; |
|
||||
unsigned char *data; |
|
||||
int i,total; |
|
||||
|
|
||||
if (signed_seq2string_nid == -1) |
|
||||
signed_seq2string_nid= |
|
||||
OBJ_create("1.9.9999","OID_example","Our example OID"); |
|
||||
|
|
||||
os1=ASN1_OCTET_STRING_new(); |
|
||||
os2=ASN1_OCTET_STRING_new(); |
|
||||
ASN1_OCTET_STRING_set(os1,(unsigned char*)str1,strlen(str1)); |
|
||||
ASN1_OCTET_STRING_set(os2,(unsigned char*)str1,strlen(str1)); |
|
||||
i =i2d_ASN1_OCTET_STRING(os1,NULL); |
|
||||
i+=i2d_ASN1_OCTET_STRING(os2,NULL); |
|
||||
total=ASN1_object_size(1,i,V_ASN1_SEQUENCE); |
|
||||
|
|
||||
data=malloc(total); |
|
||||
p=data; |
|
||||
ASN1_put_object(&p,1,i,V_ASN1_SEQUENCE,V_ASN1_UNIVERSAL); |
|
||||
i2d_ASN1_OCTET_STRING(os1,&p); |
|
||||
i2d_ASN1_OCTET_STRING(os2,&p); |
|
||||
|
|
||||
seq=ASN1_STRING_new(); |
|
||||
ASN1_STRING_set(seq,data,total); |
|
||||
free(data); |
|
||||
ASN1_OCTET_STRING_free(os1); |
|
||||
ASN1_OCTET_STRING_free(os2); |
|
||||
|
|
||||
ret=X509_ATTRIBUTE_create(signed_seq2string_nid, |
|
||||
V_ASN1_SEQUENCE,(char *)seq); |
|
||||
return(ret); |
|
||||
} |
|
||||
|
|
||||
/* For this case, I will malloc the return strings */ |
|
||||
int sk_get_seq2string(STACK_OF(X509_ATTRIBUTE) *sk, char **str1, char **str2) |
|
||||
{ |
|
||||
ASN1_TYPE *so; |
|
||||
PKCS7_SIGNER_INFO si; |
|
||||
|
|
||||
if (signed_seq2string_nid == -1) |
|
||||
signed_seq2string_nid= |
|
||||
OBJ_create("1.9.9999","OID_example","Our example OID"); |
|
||||
|
|
||||
si.auth_attr=sk; |
|
||||
/* To retrieve */ |
|
||||
so=PKCS7_get_signed_attribute(&si,signed_seq2string_nid); |
|
||||
if (so->type == V_ASN1_SEQUENCE) |
|
||||
{ |
|
||||
ASN1_const_CTX c; |
|
||||
ASN1_STRING *s; |
|
||||
long length; |
|
||||
ASN1_OCTET_STRING *os1,*os2; |
|
||||
|
|
||||
s=so->value.sequence; |
|
||||
c.p=ASN1_STRING_data(s); |
|
||||
c.max=c.p+ASN1_STRING_length(s); |
|
||||
if (!asn1_GetSequence(&c,&length)) goto err; |
|
||||
/* Length is the length of the seqence */ |
|
||||
|
|
||||
c.q=c.p; |
|
||||
if ((os1=d2i_ASN1_OCTET_STRING(NULL,&c.p,c.slen)) == NULL) |
|
||||
goto err; |
|
||||
c.slen-=(c.p-c.q); |
|
||||
|
|
||||
c.q=c.p; |
|
||||
if ((os2=d2i_ASN1_OCTET_STRING(NULL,&c.p,c.slen)) == NULL) |
|
||||
goto err; |
|
||||
c.slen-=(c.p-c.q); |
|
||||
|
|
||||
if (!asn1_const_Finish(&c)) goto err; |
|
||||
*str1=malloc(os1->length+1); |
|
||||
*str2=malloc(os2->length+1); |
|
||||
memcpy(*str1,os1->data,os1->length); |
|
||||
memcpy(*str2,os2->data,os2->length); |
|
||||
(*str1)[os1->length]='\0'; |
|
||||
(*str2)[os2->length]='\0'; |
|
||||
ASN1_OCTET_STRING_free(os1); |
|
||||
ASN1_OCTET_STRING_free(os2); |
|
||||
return(1); |
|
||||
} |
|
||||
err: |
|
||||
return(0); |
|
||||
} |
|
||||
|
|
||||
|
|
@ -1,57 +0,0 @@ |
|||||
issuer :/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=DEMONSTRATION AND TESTING/CN=DEMO ZERO VALUE CA |
|
||||
subject:/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=SMIME 003/CN=Information/Email=info@cryptsoft.com |
|
||||
serial :047D |
|
||||
|
|
||||
Certificate: |
|
||||
Data: |
|
||||
Version: 3 (0x2) |
|
||||
Serial Number: 1149 (0x47d) |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
Issuer: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=DEMONSTRATION AND TESTING, CN=DEMO ZERO VALUE CA |
|
||||
Validity |
|
||||
Not Before: May 13 05:40:58 1998 GMT |
|
||||
Not After : May 12 05:40:58 2000 GMT |
|
||||
Subject: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=SMIME 003, CN=Information/Email=info@cryptsoft.com |
|
||||
Subject Public Key Info: |
|
||||
Public Key Algorithm: rsaEncryption |
|
||||
Modulus: |
|
||||
00:ad:e7:23:89:ee:0d:87:b7:9c:32:44:4b:95:81: |
|
||||
73:dd:22:80:4b:2d:c5:60:b8:fe:1e:18:63:ef:dc: |
|
||||
89:89:22:df:95:3c:7a:db:3d:9a:06:a8:08:d6:29: |
|
||||
fd:ef:41:09:91:ed:bc:ad:98:f9:f6:28:90:62:6f: |
|
||||
e7:e7:0c:4d:0b |
|
||||
Exponent: 65537 (0x10001) |
|
||||
X509v3 extensions: |
|
||||
Netscape Comment: |
|
||||
Generated with SSLeay |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
52:15:ea:88:f4:f0:f9:0b:ef:ce:d5:f8:83:40:61:16:5e:55: |
|
||||
f9:ce:2d:d1:8b:31:5c:03:c6:2d:10:7c:61:d5:5c:0a:42:97: |
|
||||
d1:fd:65:b6:b6:84:a5:39:ec:46:ec:fc:e0:0d:d9:22:da:1b: |
|
||||
50:74:ad:92:cb:4e:90:e5:fa:7d |
|
||||
|
|
||||
-----BEGIN CERTIFICATE----- |
|
||||
MIICTDCCAfagAwIBAgICBH0wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAkFV |
|
||||
MRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UE |
|
||||
ChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsTGURFTU9OU1RSQVRJT04gQU5E |
|
||||
IFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBWQUxVRSBDQTAeFw05ODA1MTMw |
|
||||
NTQwNThaFw0wMDA1MTIwNTQwNThaMIGeMQswCQYDVQQGEwJBVTETMBEGA1UECBMK |
|
||||
UXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMRIwEAYDVQQLEwlTTUlNRSAwMDMxFDASBgNVBAMTC0luZm9ybWF0 |
|
||||
aW9uMSEwHwYJKoZIhvcNAQkBFhJpbmZvQGNyeXB0c29mdC5jb20wXDANBgkqhkiG |
|
||||
9w0BAQEFAANLADBIAkEArecjie4Nh7ecMkRLlYFz3SKASy3FYLj+Hhhj79yJiSLf |
|
||||
lTx62z2aBqgI1in970EJke28rZj59iiQYm/n5wxNCwIDAQABoygwJjAkBglghkgB |
|
||||
hvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EA |
|
||||
UhXqiPTw+QvvztX4g0BhFl5V+c4t0YsxXAPGLRB8YdVcCkKX0f1ltraEpTnsRuz8 |
|
||||
4A3ZItobUHStkstOkOX6fQ== |
|
||||
-----END CERTIFICATE----- |
|
||||
|
|
||||
-----BEGIN RSA PRIVATE KEY----- |
|
||||
MIIBOgIBAAJBAK3nI4nuDYe3nDJES5WBc90igEstxWC4/h4YY+/ciYki35U8ets9 |
|
||||
mgaoCNYp/e9BCZHtvK2Y+fYokGJv5+cMTQsCAwEAAQJBAIHpvXvqEcOEoDRRHuIG |
|
||||
fkcB4jPHcr9KE9TpxabH6xs9beN6OJnkePXAHwaz5MnUgSnbpOKq+cw8miKjXwe/ |
|
||||
zVECIQDVLwncT2lRmXarEYHzb+q/0uaSvKhWKKt3kJasLNTrAwIhANDUc/ghut29 |
|
||||
p3jJYjurzUKuG774/5eLjPLsxPPIZzNZAiA/10hSq41UnGqHLEUIS9m2/EeEZe7b |
|
||||
bm567dfRU9OnVQIgDo8ROrZXSchEGbaog5J5r/Fle83uO8l93R3GqVxKXZkCIFfk |
|
||||
IPD5PIYQAyyod3hyKKza7ZP4CGY4oOfZetbkSGGG |
|
||||
-----END RSA PRIVATE KEY----- |
|
@ -1,9 +0,0 @@ |
|||||
-----BEGIN RSA PRIVATE KEY----- |
|
||||
MIIBOgIBAAJBAK3nI4nuDYe3nDJES5WBc90igEstxWC4/h4YY+/ciYki35U8ets9 |
|
||||
mgaoCNYp/e9BCZHtvK2Y+fYokGJv5+cMTQsCAwEAAQJBAIHpvXvqEcOEoDRRHuIG |
|
||||
fkcB4jPHcr9KE9TpxabH6xs9beN6OJnkePXAHwaz5MnUgSnbpOKq+cw8miKjXwe/ |
|
||||
zVECIQDVLwncT2lRmXarEYHzb+q/0uaSvKhWKKt3kJasLNTrAwIhANDUc/ghut29 |
|
||||
p3jJYjurzUKuG774/5eLjPLsxPPIZzNZAiA/10hSq41UnGqHLEUIS9m2/EeEZe7b |
|
||||
bm567dfRU9OnVQIgDo8ROrZXSchEGbaog5J5r/Fle83uO8l93R3GqVxKXZkCIFfk |
|
||||
IPD5PIYQAyyod3hyKKza7ZP4CGY4oOfZetbkSGGG |
|
||||
-----END RSA PRIVATE KEY----- |
|
@ -1,2 +0,0 @@ |
|||||
j,H>_æá_DôzEîLœ VJ³ß觬¤””E3ûáYäx%_Àk |
|
||||
3ê)DLScñ8%ôM |
|
@ -1 +0,0 @@ |
|||||
k~@a”,NâM͹¼ <O( KP—é¨ ¤K²>×U¿o_½BqrmÎ?Ù t?t÷�Ï�éId2‰Š |
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,24 +0,0 @@ |
|||||
issuer= /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit) |
|
||||
subject=/C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Server test cert (512 bit) |
|
||||
-----BEGIN CERTIFICATE----- |
|
||||
MIIB6TCCAVICAQAwDQYJKoZIhvcNAQEEBQAwWzELMAkGA1UEBhMCQVUxEzARBgNV |
|
||||
BAgTClF1ZWVuc2xhbmQxGjAYBgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRswGQYD |
|
||||
VQQDExJUZXN0IENBICgxMDI0IGJpdCkwHhcNOTcwNjA5MTM1NzQ2WhcNOTgwNjA5 |
|
||||
MTM1NzQ2WjBjMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDEaMBgG |
|
||||
A1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxIzAhBgNVBAMTGlNlcnZlciB0ZXN0IGNl |
|
||||
cnQgKDUxMiBiaXQpMFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAJ+zw4Qnlf8SMVIP |
|
||||
Fe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVDTGiXav6ooKXfX3j/7tdkuD8Ey2// |
|
||||
Kv7+ue0CAwEAATANBgkqhkiG9w0BAQQFAAOBgQB4TMR2CvacKE9wAsu9jyCX8YiW |
|
||||
mgCM+YoP6kt4Zkj2z5IRfm7WrycKsnpnOR+tGeqAjkCeZ6/36o9l91RvPnN1VJ/i |
|
||||
xQv2df0KFeMr00IkDdTNAdIWqFkSsZTAY2QAdgenb7MB1joejquYzO2DQIO7+wpH |
|
||||
irObpESxAZLySCmPPg== |
|
||||
-----END CERTIFICATE----- |
|
||||
-----BEGIN RSA PRIVATE KEY----- |
|
||||
MIIBPAIBAAJBAJ+zw4Qnlf8SMVIPFe9GEcStgOY2Ww/dgNdhjeD8ckUJNP5VZkVD |
|
||||
TGiXav6ooKXfX3j/7tdkuD8Ey2//Kv7+ue0CAwEAAQJAN6W31vDEP2DjdqhzCDDu |
|
||||
OA4NACqoiFqyblo7yc2tM4h4xMbC3Yx5UKMN9ZkCtX0gzrz6DyF47bdKcWBzNWCj |
|
||||
gQIhANEoojVt7hq+SQ6MCN6FTAysGgQf56Q3TYoJMoWvdiXVAiEAw3e3rc+VJpOz |
|
||||
rHuDo6bgpjUAAXM+v3fcpsfZSNO6V7kCIQCtbVjanpUwvZkMI9by02oUk9taki3b |
|
||||
PzPfAfNPYAbCJQIhAJXNQDWyqwn/lGmR11cqY2y9nZ1+5w3yHGatLrcDnQHxAiEA |
|
||||
vnlEGo8K85u+KwIOimM48ZG8oTk7iFdkqLJR1utT3aU= |
|
||||
-----END RSA PRIVATE KEY----- |
|
@ -1,154 +0,0 @@ |
|||||
/* crypto/pkcs7/sign.c */ |
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* This package is an SSL implementation written |
|
||||
* by Eric Young (eay@cryptsoft.com). |
|
||||
* The implementation was written so as to conform with Netscapes SSL. |
|
||||
* |
|
||||
* This library is free for commercial and non-commercial use as long as |
|
||||
* the following conditions are aheared to. The following conditions |
|
||||
* apply to all code found in this distribution, be it the RC4, RSA, |
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation |
|
||||
* included with this distribution is covered by the same copyright terms |
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com). |
|
||||
* |
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in |
|
||||
* the code are not to be removed. |
|
||||
* If this package is used in a product, Eric Young should be given attribution |
|
||||
* as the author of the parts of the library used. |
|
||||
* This can be in the form of a textual message at program startup or |
|
||||
* in documentation (online or textual) provided with the package. |
|
||||
* |
|
||||
* Redistribution and use in source and binary forms, with or without |
|
||||
* modification, are permitted provided that the following conditions |
|
||||
* are met: |
|
||||
* 1. Redistributions of source code must retain the copyright |
|
||||
* notice, this list of conditions and the following disclaimer. |
|
||||
* 2. Redistributions in binary form must reproduce the above copyright |
|
||||
* notice, this list of conditions and the following disclaimer in the |
|
||||
* documentation and/or other materials provided with the distribution. |
|
||||
* 3. All advertising materials mentioning features or use of this software |
|
||||
* must display the following acknowledgement: |
|
||||
* "This product includes cryptographic software written by |
|
||||
* Eric Young (eay@cryptsoft.com)" |
|
||||
* The word 'cryptographic' can be left out if the rouines from the library |
|
||||
* being used are not cryptographic related :-). |
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from |
|
||||
* the apps directory (application code) you must include an acknowledgement: |
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" |
|
||||
* |
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND |
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
||||
* SUCH DAMAGE. |
|
||||
* |
|
||||
* The licence and distribution terms for any publically available version or |
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be |
|
||||
* copied and put under another distribution licence |
|
||||
* [including the GNU Public Licence.] |
|
||||
*/ |
|
||||
#include <stdio.h> |
|
||||
#include <string.h> |
|
||||
#include <openssl/bio.h> |
|
||||
#include <openssl/x509.h> |
|
||||
#include <openssl/pem.h> |
|
||||
#include <openssl/err.h> |
|
||||
|
|
||||
int main(argc,argv) |
|
||||
int argc; |
|
||||
char *argv[]; |
|
||||
{ |
|
||||
X509 *x509; |
|
||||
EVP_PKEY *pkey; |
|
||||
PKCS7 *p7; |
|
||||
PKCS7_SIGNER_INFO *si; |
|
||||
BIO *in; |
|
||||
BIO *data,*p7bio; |
|
||||
char buf[1024*4]; |
|
||||
int i; |
|
||||
int nodetach=0; |
|
||||
|
|
||||
#ifndef OPENSSL_NO_MD2 |
|
||||
EVP_add_digest(EVP_md2()); |
|
||||
#endif |
|
||||
#ifndef OPENSSL_NO_MD5 |
|
||||
EVP_add_digest(EVP_md5()); |
|
||||
#endif |
|
||||
#ifndef OPENSSL_NO_SHA1 |
|
||||
EVP_add_digest(EVP_sha1()); |
|
||||
#endif |
|
||||
#ifndef OPENSSL_NO_MDC2 |
|
||||
EVP_add_digest(EVP_mdc2()); |
|
||||
#endif |
|
||||
|
|
||||
data=BIO_new(BIO_s_file()); |
|
||||
again: |
|
||||
if (argc > 1) |
|
||||
{ |
|
||||
if (strcmp(argv[1],"-nd") == 0) |
|
||||
{ |
|
||||
nodetach=1; |
|
||||
argv++; argc--; |
|
||||
goto again; |
|
||||
} |
|
||||
if (!BIO_read_filename(data,argv[1])) |
|
||||
goto err; |
|
||||
} |
|
||||
else |
|
||||
BIO_set_fp(data,stdin,BIO_NOCLOSE); |
|
||||
|
|
||||
if ((in=BIO_new_file("server.pem","r")) == NULL) goto err; |
|
||||
if ((x509=PEM_read_bio_X509(in,NULL,NULL,NULL)) == NULL) goto err; |
|
||||
BIO_reset(in); |
|
||||
if ((pkey=PEM_read_bio_PrivateKey(in,NULL,NULL,NULL)) == NULL) goto err; |
|
||||
BIO_free(in); |
|
||||
|
|
||||
p7=PKCS7_new(); |
|
||||
PKCS7_set_type(p7,NID_pkcs7_signed); |
|
||||
|
|
||||
si=PKCS7_add_signature(p7,x509,pkey,EVP_sha1()); |
|
||||
if (si == NULL) goto err; |
|
||||
|
|
||||
/* If you do this then you get signing time automatically added */ |
|
||||
PKCS7_add_signed_attribute(si, NID_pkcs9_contentType, V_ASN1_OBJECT, |
|
||||
OBJ_nid2obj(NID_pkcs7_data)); |
|
||||
|
|
||||
/* we may want to add more */ |
|
||||
PKCS7_add_certificate(p7,x509); |
|
||||
|
|
||||
/* Set the content of the signed to 'data' */ |
|
||||
PKCS7_content_new(p7,NID_pkcs7_data); |
|
||||
|
|
||||
if (!nodetach) |
|
||||
PKCS7_set_detached(p7,1); |
|
||||
|
|
||||
if ((p7bio=PKCS7_dataInit(p7,NULL)) == NULL) goto err; |
|
||||
|
|
||||
for (;;) |
|
||||
{ |
|
||||
i=BIO_read(data,buf,sizeof(buf)); |
|
||||
if (i <= 0) break; |
|
||||
BIO_write(p7bio,buf,i); |
|
||||
} |
|
||||
|
|
||||
if (!PKCS7_dataFinal(p7,p7bio)) goto err; |
|
||||
BIO_free(p7bio); |
|
||||
|
|
||||
PEM_write_PKCS7(stdout,p7); |
|
||||
PKCS7_free(p7); |
|
||||
|
|
||||
exit(0); |
|
||||
err: |
|
||||
ERR_load_crypto_strings(); |
|
||||
ERR_print_errors_fp(stderr); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
@ -1,16 +0,0 @@ |
|||||
-----BEGIN PKCS7----- |
|
||||
MIAGCSqGSIb3DQEHA6CAMIACAQAxggHmMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEG |
|
||||
A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD |
|
||||
ExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR+MA0GCSqGSIb3DQEBAQUABEC2vXI1xQDW6lUHM3zQ |
|
||||
/9uBEBOO5A3TtkrklAXq7v01gsIC21t52qSk36REXY+slhNZ0OQ349tgkTsoETHFLoEwMIHw |
|
||||
AgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMI |
|
||||
QnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU |
|
||||
UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR9MA0G |
|
||||
CSqGSIb3DQEBAQUABEB8ujxbabxXUYJhopuDm3oDq4JNqX6Io4p3ro+ShqfIndsXTZ1v5a2N |
|
||||
WtLLCWlHn/habjBwZ/DgQgcKASbZ7QxNMIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIA |
|
||||
oAQIbsL5v1wX98KggAQoAaJ4WHm68fXY1WE5OIjfVBIDpO1K+i8dmKhjnAjrjoyZ9Bwc8rDL |
|
||||
lgQg4CXb805h5xl+GfvSwUaHJayte1m2mcOhs3J2YyqbQ+MEIMIiJQccmhO3oDKm36CFvYR8 |
|
||||
5PjpclVcZyX2ngbwPFMnBAgy0clOAE6UKAAAAAAAAAAAAAA= |
|
||||
-----END PKCS7----- |
|
||||
|
|
@ -1,32 +0,0 @@ |
|||||
-----BEGIN PKCS7----- |
|
||||
MIIGHgYJKoZIhvcNAQcCoIIGDzCCBgsCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC |
|
||||
BGswggJTMIIB/aADAgECAgIEfjANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCQVUxEzAR |
|
||||
BgNVBAgTClF1ZWVuc2xhbmQxETAPBgNVBAcTCEJyaXNiYW5lMRowGAYDVQQKExFDcnlwdHNv |
|
||||
ZnQgUHR5IEx0ZDEiMCAGA1UECxMZREVNT05TVFJBVElPTiBBTkQgVEVTVElORzEbMBkGA1UE |
|
||||
AxMSREVNTyBaRVJPIFZBTFVFIENBMB4XDTk4MDUxMzA2MjY1NloXDTAwMDUxMjA2MjY1Nlow |
|
||||
gaUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFu |
|
||||
ZTEaMBgGA1UEChMRQ3J5cHRzb2Z0IFB0eSBMdGQxEjAQBgNVBAsTCVNNSU1FIDAwMzEZMBcG |
|
||||
A1UEAxMQQW5nZWxhIHZhbiBMZWVudDEjMCEGCSqGSIb3DQEJARYUYW5nZWxhQGNyeXB0c29m |
|
||||
dC5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEAuC3+7dAb2LhuO7gt2cTM8vsNjhG5JfDh |
|
||||
hX1Vl/wVGbKEEj0MA6vWEolvefQlxB+EzwCtR0YZ7eEC/T/4JoCyeQIDAQABoygwJjAkBglg |
|
||||
hkgBhvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EAUnSP |
|
||||
igs6TMFISTjw8cBtJYb98czgAVkVFjKyJQwYMH8FbDnCyx6NocM555nsyDstaw8fKR11Khds |
|
||||
syd3ikkrhDCCAhAwggG6AgEDMA0GCSqGSIb3DQEBBAUAMIGSMQswCQYDVQQGEwJBVTETMBEG |
|
||||
A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD |
|
||||
ExJERU1PIFpFUk8gVkFMVUUgQ0EwHhcNOTgwMzAzMDc0MTMyWhcNMDgwMjI5MDc0MTMyWjCB |
|
||||
kjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxETAPBgNVBAcTCEJyaXNiYW5l |
|
||||
MRowGAYDVQQKExFDcnlwdHNvZnQgUHR5IEx0ZDEiMCAGA1UECxMZREVNT05TVFJBVElPTiBB |
|
||||
TkQgVEVTVElORzEbMBkGA1UEAxMSREVNTyBaRVJPIFZBTFVFIENBMFwwDQYJKoZIhvcNAQEB |
|
||||
BQADSwAwSAJBAL+0E2fLej3FSCwe2A2iRnMuC3z12qHIp6Ky1wo2zZcxft7AI+RfkrWrSGtf |
|
||||
mfzBEuPrLdfulncC5Y1pNcM8RTUCAwEAATANBgkqhkiG9w0BAQQFAANBAGSbLMphL6F5pp3s |
|
||||
8o0Xyh86FHFdpVOwYx09ELLkuG17V/P9pgIc0Eo/gDMbN+KT3IdgECf8S//pCRA6RrNjcXIx |
|
||||
ggF7MIIBdwIBATCBmTCBkjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxETAP |
|
||||
BgNVBAcTCEJyaXNiYW5lMRowGAYDVQQKExFDcnlwdHNvZnQgUHR5IEx0ZDEiMCAGA1UECxMZ |
|
||||
REVNT05TVFJBVElPTiBBTkQgVEVTVElORzEbMBkGA1UEAxMSREVNTyBaRVJPIFZBTFVFIENB |
|
||||
AgIEfjAJBgUrDgMCGgUAoHowGAYJKoZIhvcNAQkDMQsGCSqGSIb3DQEHATAbBgkqhkiG9w0B |
|
||||
CQ8xDjAMMAoGCCqGSIb3DQMHMBwGCSqGSIb3DQEJBTEPFw05ODA1MTQwMzM5MzdaMCMGCSqG |
|
||||
SIb3DQEJBDEWBBQstNMnSV26ba8PapQEDhO21yNFrjANBgkqhkiG9w0BAQEFAARAW9Xb9YXv |
|
||||
BfcNkutgFX9Gr8iXhBVsNtGEVrjrpkQwpKa7jHI8SjAlLhk/4RFwDHf+ISB9Np3Z1WDWnLcA |
|
||||
9CWR6g== |
|
||||
-----END PKCS7----- |
|
@ -1,48 +0,0 @@ |
|||||
issuer :/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=DEMONSTRATION AND TESTING/CN=DEMO ZERO VALUE CA |
|
||||
subject:/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=SMIME 003/CN=Information/Email=info@cryptsoft.com |
|
||||
serial :047D |
|
||||
|
|
||||
Certificate: |
|
||||
Data: |
|
||||
Version: 3 (0x2) |
|
||||
Serial Number: 1149 (0x47d) |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
Issuer: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=DEMONSTRATION AND TESTING, CN=DEMO ZERO VALUE CA |
|
||||
Validity |
|
||||
Not Before: May 13 05:40:58 1998 GMT |
|
||||
Not After : May 12 05:40:58 2000 GMT |
|
||||
Subject: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=SMIME 003, CN=Information/Email=info@cryptsoft.com |
|
||||
Subject Public Key Info: |
|
||||
Public Key Algorithm: rsaEncryption |
|
||||
Modulus: |
|
||||
00:ad:e7:23:89:ee:0d:87:b7:9c:32:44:4b:95:81: |
|
||||
73:dd:22:80:4b:2d:c5:60:b8:fe:1e:18:63:ef:dc: |
|
||||
89:89:22:df:95:3c:7a:db:3d:9a:06:a8:08:d6:29: |
|
||||
fd:ef:41:09:91:ed:bc:ad:98:f9:f6:28:90:62:6f: |
|
||||
e7:e7:0c:4d:0b |
|
||||
Exponent: 65537 (0x10001) |
|
||||
X509v3 extensions: |
|
||||
Netscape Comment: |
|
||||
Generated with SSLeay |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
52:15:ea:88:f4:f0:f9:0b:ef:ce:d5:f8:83:40:61:16:5e:55: |
|
||||
f9:ce:2d:d1:8b:31:5c:03:c6:2d:10:7c:61:d5:5c:0a:42:97: |
|
||||
d1:fd:65:b6:b6:84:a5:39:ec:46:ec:fc:e0:0d:d9:22:da:1b: |
|
||||
50:74:ad:92:cb:4e:90:e5:fa:7d |
|
||||
|
|
||||
-----BEGIN CERTIFICATE----- |
|
||||
MIICTDCCAfagAwIBAgICBH0wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAkFV |
|
||||
MRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UE |
|
||||
ChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsTGURFTU9OU1RSQVRJT04gQU5E |
|
||||
IFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBWQUxVRSBDQTAeFw05ODA1MTMw |
|
||||
NTQwNThaFw0wMDA1MTIwNTQwNThaMIGeMQswCQYDVQQGEwJBVTETMBEGA1UECBMK |
|
||||
UXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMRIwEAYDVQQLEwlTTUlNRSAwMDMxFDASBgNVBAMTC0luZm9ybWF0 |
|
||||
aW9uMSEwHwYJKoZIhvcNAQkBFhJpbmZvQGNyeXB0c29mdC5jb20wXDANBgkqhkiG |
|
||||
9w0BAQEFAANLADBIAkEArecjie4Nh7ecMkRLlYFz3SKASy3FYLj+Hhhj79yJiSLf |
|
||||
lTx62z2aBqgI1in970EJke28rZj59iiQYm/n5wxNCwIDAQABoygwJjAkBglghkgB |
|
||||
hvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EA |
|
||||
UhXqiPTw+QvvztX4g0BhFl5V+c4t0YsxXAPGLRB8YdVcCkKX0f1ltraEpTnsRuz8 |
|
||||
4A3ZItobUHStkstOkOX6fQ== |
|
||||
-----END CERTIFICATE----- |
|
||||
|
|
@ -1,32 +0,0 @@ |
|||||
-----BEGIN PKCS7----- |
|
||||
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 |
|
||||
9CWR6g== |
|
||||
-----END PKCS7----- |
|
@ -1,20 +0,0 @@ |
|||||
|
|
||||
MIAGCSqGSIb3DQEHA6CAMIACAQAxggHCMIHMAgEAMHYwYjERMA8GA1UEBxMISW50ZXJuZXQxFzAV |
|
||||
BgNVBAoTDlZlcmlTaWduLCBJbmMuMTQwMgYDVQQLEytWZXJpU2lnbiBDbGFzcyAxIENBIC0gSW5k |
|
||||
aXZpZHVhbCBTdWJzY3JpYmVyAhBgQJiC3qfbCbjdj5INYLnKMA0GCSqGSIb3DQEBAQUABECMzu8y |
|
||||
wQ/qZbO8cAGMRBF+mPruv3+Dvb9aWNZ2k8njUgqF6mcdhVB2MkGcsG3memRXJBixvMYWVkU3qK4Z |
|
||||
VuKsMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UE |
|
||||
BxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU |
|
||||
UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgRuMA0GCSqG |
|
||||
SIb3DQEBAQUABEBcWwYFHJbJGhiztt7lzue3Lc9CH5WAbyR+2BZ3uv+JxZfRs1PuaWPOwRa0Vgs3 |
|
||||
YwSJoRfxQj2Gk0wFqG1qt6d1MIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIAoAQI8vRlP/Nx |
|
||||
2iSggASCAZhR5srxyspy7DfomRJ9ff8eMCtaNwEoEx7G25PZRonC57hBvGoScLtEPU3Wp9FEbPN7 |
|
||||
oJESeC+AqMTyTLNy8aQsyC5s53E9UkoIvg62ekYZBbXZqXsrxx4PhiiX3NH8GVh42phB0Chjw0nK |
|
||||
HZeRDmxGY3Cmk+J+l0uVKxbNIfJIKOguLBnhqmnKH/PrnzDt591u0ULy2aTLqRm+4/1Yat/QPb6J |
|
||||
eoKGwNPBbS9ogBdrCNCp9ZFg3Xar2AtQHzyTQIfYeH3SRQUpKmRm5U5o9p5emgEdT+ZfJm/J4tSH |
|
||||
OmbgAFsbHQakA4MBZ4J5qfDJhOA2g5lWk1hIeu5Dn/AaLRZd0yz3oY0Ieo/erPWx/bCqtBzYbMe9 |
|
||||
qSFTedKlbc9EGe3opOTdBZVzK8KH3w3zsy5luxKdOUG59YYb5F1IZiWGiDyuo/HuacX+griu5LeD |
|
||||
bEzOtZnko+TZXvWIko30fD79j3T4MRRhWXbgj2HKza+4vJ0mzcC/1+GPsJjAEAA/JgIEDU4w6/DI |
|
||||
/HQHhLAO3G+9xKD7MvmrzkoAAAAAAAAAAAAA |
|
||||
|
|
||||
|
|
@ -1,22 +0,0 @@ |
|||||
-----BEGIN PKCS7----- |
|
||||
MIAGCSqGSIb3DQEHA6CAMIIDkAIBADGCAcIwgcwCAQAwdjBiMREwDwYDVQQHEwhJ |
|
||||
bnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlT |
|
||||
aWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXICEGBAmILep9sJ |
|
||||
uN2Pkg1gucowDQYJKoZIhvcNAQEBBQAEQIzO7zLBD+pls7xwAYxEEX6Y+u6/f4O9 |
|
||||
v1pY1naTyeNSCoXqZx2FUHYyQZywbeZ6ZFckGLG8xhZWRTeorhlW4qwwgfACAQAw |
|
||||
gZkwgZIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH |
|
||||
EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsT |
|
||||
GURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBW |
|
||||
QUxVRSBDQQICBG4wDQYJKoZIhvcNAQEBBQAEQFxbBgUclskaGLO23uXO57ctz0If |
|
||||
lYBvJH7YFne6/4nFl9GzU+5pY87BFrRWCzdjBImhF/FCPYaTTAWobWq3p3UwggHD |
|
||||
BgkqhkiG9w0BBwEwGgYIKoZIhvcNAwIwDgICAKAECPL0ZT/zcdokgIIBmFHmyvHK |
|
||||
ynLsN+iZEn19/x4wK1o3ASgTHsbbk9lGicLnuEG8ahJwu0Q9Tdan0URs83ugkRJ4 |
|
||||
L4CoxPJMs3LxpCzILmzncT1SSgi+DrZ6RhkFtdmpeyvHHg+GKJfc0fwZWHjamEHQ |
|
||||
KGPDScodl5EObEZjcKaT4n6XS5UrFs0h8kgo6C4sGeGqacof8+ufMO3n3W7RQvLZ |
|
||||
pMupGb7j/Vhq39A9vol6gobA08FtL2iAF2sI0Kn1kWDddqvYC1AfPJNAh9h4fdJF |
|
||||
BSkqZGblTmj2nl6aAR1P5l8mb8ni1Ic6ZuAAWxsdBqQDgwFngnmp8MmE4DaDmVaT |
|
||||
WEh67kOf8BotFl3TLPehjQh6j96s9bH9sKq0HNhsx72pIVN50qVtz0QZ7eik5N0F |
|
||||
lXMrwoffDfOzLmW7Ep05Qbn1hhvkXUhmJYaIPK6j8e5pxf6CuK7kt4NsTM61meSj |
|
||||
5Nle9YiSjfR8Pv2PdPgxFGFZduCPYcrNr7i8nSbNwL/X4Y+wmMAQAD8mAgQNTjDr |
|
||||
8Mj8dAeEsA7cb73EoPsy+avOSgAAAAA= |
|
||||
-----END PKCS7----- |
|
@ -1,62 +0,0 @@ |
|||||
|
|
||||
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 |
|
||||
AAAAAAAAAAAA |
|
||||
|
|
@ -1,66 +0,0 @@ |
|||||
-----BEGIN PKCS7----- |
|
||||
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 |
|
||||
6RLfsTyyPgJi0GsAAAAA |
|
||||
-----END PKCS7----- |
|
@ -1,90 +0,0 @@ |
|||||
|
|
||||
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 |
|
||||
rZgAAAAAAAAAAAAA |
|
||||
|
|
@ -1,106 +0,0 @@ |
|||||
-----BEGIN PKCS7----- |
|
||||
MIAGCSqGSIb3DQEHA6CAMIITQAIBADGCAcIwgcwCAQAwdjBiMREwDwYDVQQHEwhJ |
|
||||
bnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlT |
|
||||
aWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXICEGBAmILep9sJ |
|
||||
uN2Pkg1gucowDQYJKoZIhvcNAQEBBQAEQAKvi2eRLO+jdoiUd8ksZt+iQ0JXoWN0 |
|
||||
M/W9CEv6R1c42pwUIR/1F4RMK9oeyUiv9Z6lzmPaGNmx6XOCoueszVkwgfACAQAw |
|
||||
gZkwgZIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH |
|
||||
EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsT |
|
||||
GURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBW |
|
||||
QUxVRSBDQQICBG4wDQYJKoZIhvcNAQEBBQAEQFqcHEo69ShGfcOIVjnmWXLZM+7Y |
|
||||
K/50j8YuvNbqq+dQxk9YY8ZpSU/JYsxmtcnEZdlSJEkpMHAO73V+eh1QQr0wghFz |
|
||||
BgkqhkiG9w0BBwEwGgYIKoZIhvcNAwIwDgICAKAECJsSmRA1jxLjgIIRSIGLVtf+ |
|
||||
pzeB6oXJ9GlfsnIij+DgIOvrYaXC9qywAaUg7zMnln9QMgiih5XpBLgPg5Y/KYp3 |
|
||||
RZeHBwkjTIFwlNYSjE0PbsszsJYUmkDTsCjFUJEdM4+Cbv3g3Kct5w1Q6pVMXJLg |
|
||||
JG4uFUY8CTScVkb9ETbIy3HisCRKJWA57ERLvCr/Fa6gNJKa5Mw1A5Nsp+QQqp0U |
|
||||
uQz93raAPbCdqmHu8qQ88rzbB1k/ysXedRQLlzhqFs2hryD7kHe0gX8nPdlkre8Y |
|
||||
tTQhY76LtbjnV2drXcyCUMONc56KQ2VcuxB0BWjSeyN8a75/rpt6wmiM/PKw0D4g |
|
||||
RmXqA1ZR62X2WKbhKqvG5tQTF1LauZeddeYS4Rb8cLt2VMB5irkKWrHmJ3qyWELY |
|
||||
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 |
|
||||
FK2YAAAAAA== |
|
||||
-----END PKCS7----- |
|
@ -1,91 +0,0 @@ |
|||||
|
|
||||
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 |
|
||||
5ify04ua9/t8SGrYZPm/l3MkAAAAAAAAAAAAAA== |
|
||||
|
|
||||
|
|
@ -1,106 +0,0 @@ |
|||||
-----BEGIN PKCS7----- |
|
||||
MIAGCSqGSIb3DQEHA6CAMIITUAIBADGCAcIwgcwCAQAwdjBiMREwDwYDVQQHEwhJ |
|
||||
bnRlcm5ldDEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNDAyBgNVBAsTK1ZlcmlT |
|
||||
aWduIENsYXNzIDEgQ0EgLSBJbmRpdmlkdWFsIFN1YnNjcmliZXICEGBAmILep9sJ |
|
||||
uN2Pkg1gucowDQYJKoZIhvcNAQEBBQAEQKOxxpIbRTb31+qIQCBOpMVAGnwCLrPO |
|
||||
OXnntxVveTrPhBnsJuoGNJcCMtuHl7tLkd38WsVwOfGXUprTqFpUcY8wgfACAQAw |
|
||||
gZkwgZIxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQH |
|
||||
EwhCcmlzYmFuZTEaMBgGA1UEChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsT |
|
||||
GURFTU9OU1RSQVRJT04gQU5EIFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBW |
|
||||
QUxVRSBDQQICBG4wDQYJKoZIhvcNAQEBBQAEQKzIddnXFqK/RRBG86ZVixoXfwAv |
|
||||
ZdfvnDFsKzPn/A6DuDdE/hqJxnFpHiwGiDR/YbWj2ib+G74DSshgX8vj8ZQwghGD |
|
||||
BgkqhkiG9w0BBwEwGgYIKoZIhvcNAwIwDgICAKAECLKM0K58I3HNgIIRWBDP8s+g |
|
||||
l7/6JhZ5PBJ5vPpD1R4pnNDZRabsYu0Qzezdz1IK+maTAhF0SEuNZoEkzIgOIvu3 |
|
||||
UjW8x/2KcHwteABwgRiSk1JyNLwRED0RtvuJ40pIGDvDsHwBMcXEtKUMAOpGChms |
|
||||
HUK1+B/GKancSDFOCeG3JCFnFdbuQFDIVHC6amWslc6ntqVs/sii2Gs4qdzDfQgl |
|
||||
PV/A/FY0wi0j2O5cXRQJtZVKM/MYGjj5c1cy9Q7oymU5ATP/LARD0Tw5kBB7HVnD |
|
||||
2qrmmmxcHakyxhXmwskaKS6Qxgqq6LPdgr603onxqEtwNSz5UbCq9mLXuCkFOVsQ |
|
||||
/5mZcmmc7re3XJMQHRXkBlxEpZQ6HOUIEzlhRqCo2hhymyZK84rptjORQo6vNakM |
|
||||
IC0Zn8O+6Xl1NlmbGzZakz6LJ4dczE7eG7LwrVus9Oq3V/WweG6rWMPV5d51oKMi |
|
||||
BRb2pXXy80BAKh/9hvpP/V/HO1/+MPuk8tAn7ssmQoIAQcZxqLOmgqqFhy21oSEu |
|
||||
rUY746Gp/vIV6Ax1MnfDA/fbjDllhJTl8ujZnfj8R1/oQa9fJMipV8CYQEAt3okZ |
|
||||
V03kaVhhPGsv544/zRnhqjhgqjHASZGnluZCxDwHb1CE4UqYLp6IbkH3qosy2ntm |
|
||||
a7WCsM3FN3o5dKFZXBgBEPT8HU9LLQ8B+T0Zvh8CQ719kkNBhnuzSYzmI48R5JHv |
|
||||
zbROiU5v4p9FpssD13vXiOxzaMTKQqWk/roGHiNoKzKonS5RBwTxKfOsoCobCBaI |
|
||||
IZCmJNr4cGI/p5GVEY4pCPljTq9w3HoiNrhwZ7r7II3wdXy0JjSiRkr3w1AKXm3v |
|
||||
1H9kHZzc28Ekf7+De6VTjyKRPe1WYPETeY5mh9nIYUQz30/5gIxJwsPFOXeHMbLR |
|
||||
iQjxTznk/uo4BtwV+HZPmf4tIQvAuFuTKYR9lP3XsZZN+bKkFYy8nHRYd4OErBBg |
|
||||
93NsqBYROdzJ4pqxoJb6gt2EHCt3pazavgwDxzCJhcMtvBiYLEkDxUX77yS5sXYc |
|
||||
k6NLIwFL5BPY9JX/QP1RaiJV+TtHg69YElW+rudX6VdLQ7mKCMTHGWbHU5oF+Dv4 |
|
||||
Kv8xsrjNU2spImfzY2coq3osLpFpOa8VhrLSwMXFDtej5OHq0M0qYpYm3op6B+Nz |
|
||||
6pNYlMpveQv5Qjy9LTNMvLX4z+tnh6Siz8mJLmtghwCzC+DnyQGCn/Stzq6kF5aM |
|
||||
Fork7RosB4FB8u6WjVrFZfTg5JUqZh6gCW3JHpQ70wTdpy6tDKDtNrbjKo7CGL8+ |
|
||||
shoSI7t2xa8W3OyyFXMEuJzTY2UCQ+QxTOWI9idkdZCCUMBXEvkraqG8rU4UKRCk |
|
||||
iAGwEMzophEv+aSyJfdu6yJGjd+/wUCHMS3EmtOWHwtB5d5sVhErdQNA+JQN+wPU |
|
||||
vBG2Jg3wGJTHNNx4WRnWRLWsH6SRcgx8zWXHjVgXIep8XjWQmOGBXbG87hktESqc |
|
||||
DQPUv3MzieKfcpgQsboRnqSN1DymwvAu+PVsMNf8DHQKLdZ/iuzPzwRkfIVpmh+U |
|
||||
ku1N8jMAAdX6tjQ48eLq/lJvjHJUnTdNTA18xhDvngKNaXQGPOO/dt+JfHQdmFQI |
|
||||
WdWZSeCpm6jCiaxiV50FBGEuv3Ew0Y7FKHLKFu7hoNXIthoh2qo5ZH6QX4nt0nYR |
|
||||
VvyvIcAB9BwC7OeqBTeusFJD/wGiQD3yFDYUekaRys2fcwguNqAdpjWsEETJxREw |
|
||||
ZdbP0sDMSykae4wHyrODWcUmOiPc/9nU6c0t7bBzI8VQ7sZKJb0TVgSCxDHi9Qgb |
|
||||
4qdh4ZqFMP0s+TQ4Ms5NWkC1eg0DSdkWSzGQ0QrUsGUgbupYYUoEyRmsz9PjW6l1 |
|
||||
wuWkE66qxSHFsg18/gA5XpLM82DP4EmkEwgC08Hww2lPRJN8VYFvlwbRMbSd1PtA |
|
||||
Dd5dI/Oq1CHSL6enlncVkKr/S7aaKKyjAyn1HOT2FdPWdSYLE+F+dWc6vu+JeXc+ |
|
||||
7nSDO1DW3U6ZkZvTw4901GxgrzUfYajhBky25L29WUduGoerhkZds5wduSKQwBkY |
|
||||
TUW/YrP6Ttrbx8B0wzDo64L2Rv6Tb14ElMc9KUY1I1yHKgXtl9oHEH3mpa/IGO+q |
|
||||
PN1hBi+jg68lfb00FR7edvos4KWKAWWlZaYKm2ZeeHPjhNGcX/UcF8A23GLuSruR |
|
||||
NDDy9KlI3NMtvmOhOD+WwFmmRjBk/jkZMlVM3GlpjP/l5TuzxEecK1pQiDGQl9S/ |
|
||||
574qGNKtAiqgC5+wyUFPqnp28K2+rsEu7jWWOlfOrNGg2KVO8kcqsQuUm7sjSW9N |
|
||||
oHcVAoKSLHBWjFIzFUZpeDOASI1/21Ph4B6FTFJvEpzfYEXE9osz64DhlXDEyY33 |
|
||||
p86AiqAj6PUY4BjHLYAeA7ymphKzVOzq4pSH7qKsxDzUnj/Uj8P85A5jbzHmzOPf |
|
||||
VnvQlZ7B1FqhdNP2SVqLmu+/tH9Wy0v7ZnItSQbyHDKP+Eib4B/ihaNIIoz/YKgD |
|
||||
3eYgjp6ZyZR1KkSMpuNkpsihA7s3UsFyowEeo+7l3Wt/ScjCa/IBsxLLtI2EZAJo |
|
||||
9WHYqsCl1HCzJHI9QCnlPz8U1FcNGCrL/66MKz2MMN8UFFqjYr61wexghxNwc7GD |
|
||||
XR7Js4mhiF0GwPhAR3ZLiqzPAXAvn8YRf5fylMZ4LA9RO+SHFL/MxQxfrJOAgWB6 |
|
||||
pLPUuCWJXLm7os6rCC23RsyDDWe8N+JNF0/ryzr8MHeIJGsT+AYnZr08PeTbyr01 |
|
||||
JEoT7lPYT6PzX4F63QKKDl+mB+PwLMzYCXrxZcUmuay6/MV8w/f5T6vQXdoSw5pu |
|
||||
WodBYwVReYh1IaEN+jiTapm9YBVmcIsJPO6abHowknSVOWSvST0AtAX57fFOTckm |
|
||||
+facfBK9s9T1lUUgF44Bh5e8f9qKqfOV44nqdCOEyUm0Dao497ieN4EgXBLNvOZY |
|
||||
9+irMiXjp0lcyFvhrJOczfyCr9EiiaiH1TfSzKGKsf2W84iKn/JH6x2eOo7xjwJ4 |
|
||||
0BQDc6S1cUNEuqBhP6by0FioOXYOKVyifpxk84Eb+F/4CNdTJTvCPwsiegdfsX/Q |
|
||||
53DvKVtXp9Ycam5JTmKRHXK/bMHF4ONv3p/O/kn/BqRx+fbbP2eMX8Z1F/ltHKfp |
|
||||
6B+06HljUwQLBJs9XtCfqH5Zgdz9gad5WZF5ykFArmHDgeFlgggvbZ7z9vqnjN/T |
|
||||
H68TxJzauYQ5vLHQ6wGXik4/4uq7/TqNmhxlQEM4zVkwsn203bUmKLyz+yl1zItD |
|
||||
pn5zy1uXfGo99rBdUzdbdE9LmEFPMaFsaHd4a8oDaUroD7FgCbeDJJVld3ac6F8+ |
|
||||
3QbExPs48OrgA1kI3/UwXr52ldjiYzTLfAGR9BjqNFTw45FUHuMf8TEM5hcHx56w |
|
||||
95eKAqraDk28o9k+M2UKpcmrdlWoWzdqVVFeWGpM8x9Y9Nt0lf/4VUQgrXjqTkUC |
|
||||
QkJyqTeTeGgHrn3QBk2XAgpxZhaJs3InW0BkAlBmK99cMinUiJeFt5a4p5wPeXrV |
|
||||
uh6V9m7Mpl9hzpogg++EZqahfzzNnDgxOZfW342DX052PdgXo0NnkhCk005LvFt6 |
|
||||
M2mRn0fLgNVfyUZZoOp8cO5ZWbhXXlrhrgUtj2zKPK6Q94Zj4kdXHBGpAkrB8ZQ4 |
|
||||
EGGODE0Dqusm8WPXzB+9236IMHPU7lFbyjBrFNI7O4jg+qRIIpi+7tX0FsilqEbm |
|
||||
jG+OPwhZXrdqUqyF+rjKQuSRq7lOeDB4c6S2dq4OOny01i5HCbbyc9UvSHRmhOhG |
|
||||
qUlzHyHLo3W7j+26V/MhkDXJ+Tx+qfylv4pbliwTteJJj+CZwzjv29qb6lxYi+38 |
|
||||
Bw10ERapm8UCRFBecVN7xXlcIfyeAl666Vi7EBJZv3EdFNrx1nlLwM65nYya7uj6 |
|
||||
L7IwJWotIUx8E0XH0/cUxS/dG8bxf9L/8652h5gq3LI+wTNGuEX0DMuz7BGQG+Nt |
|
||||
gabrZ6SsKGthGa7eULTpz0McWTLRU0y//tkckpm5pDnXSFbIMskwwjECz82UZBSP |
|
||||
pigdN/Pjg5d+0yWu7s3VJxw4ENWPPpzZ+j7sOXmdvn9PO1tQd60EO+3awBlC9ZXf |
|
||||
/InoXE+21s/6p5RGkmg8Rl+k3ZRhmZ3weq1HRhto5npGWf2e+l0r1/KVd3D3PbF4 |
|
||||
JuMNZS20kHhWpnEYkzx4JMLVUNXIA6xDmftJjnl0yRBtT6jhn/gnmbz7DPnQEEgt |
|
||||
+u4vV5nr8IXoJ2/FVGInXSxdzROfaxUxeqTDsB2nUZigIj1zpUVIUrvj6f7LstUV |
|
||||
DkcGdtDIolx290s5fBk49oUcLlQ1dGY6lzB0+rJdR77Eiw4xhvN2UCcj14YM15EO |
|
||||
S1Rr9GHQJtkLGOYnOhkRg4RmOxhmUR+nUpvrW3zPibbyEYsSDzxPUiGbFrYd5RZ6 |
|
||||
zVGmaAg4/7/YtveyaP+X9+lK7iBpsWDIIBUfkd0JgxJxS/xJW7nn62l47wQugcdB |
|
||||
RdXiuvTzg7hu53OGA1I4/IsYOXmx8NReLK6w8LFLglU78pjpXZCu2D+rbC2ZekSR |
|
||||
mcZP5CLdYPPC3hbzVqXO2dgw/XugYubFfvUpX04SIxmMjhZpoa3444g0u1Gp5+Kh |
|
||||
nU0jYvWzkzS3JvBOzJT1YREz7elTBch8lWxsxlGU1o7Y6iBwdtpHhRa+E6P7cJMb |
|
||||
WxOGJhAzEyenVGmrHeeHLOos7dNGuRi/GcDdx08Gf0R6qmAEyDtfeEKIxXcWXlyP |
|
||||
9Y4yG0diBjsGB4JejjoQVVnj5augZnjrEaJEOIhuWjxvMt3tALG+6TPHLeZQOCxl |
|
||||
Dyl2zg3bzB5JSEGTkwA9t8GlG9dRUnEyEqpe5xBTUx3WpIYtu64hC7P2kAanUkVT |
|
||||
H+8SQKCbvh1pKhVYJm4H7VkTh/jxyW+sGPnXEw1/wI8QUTu/JLNVvpfYfWLlfdn5 |
|
||||
jcN0hxbDhjYUKV9wmTgzCrwKrYYAsYUSB71hIQT1ibK5To4V5TQgKieJcCBnvZIz |
|
||||
x8HAk+u4sVt2w1gpb6gB+Y+KxdJYxxmZ1Jt+TQZi/68q27d56BJtbDVSwJW1k6H0 |
|
||||
Tlm5DzeXn0IGo72xX9IVTdausnSo1bGuZe72cmflB/mIJGgUZg0dgeQgbkVLo3TQ |
|
||||
YQNnEaTGaujZ374B2PktUdz9vVxhaau7H6MSojxkrxzJMHRcxsED8dhvH01drOvv |
|
||||
Oc/j8yW/ellOgRxi36WAscACu1QB2HJuFssjA0yrSCvoTC0OSUFreezhbH+slTwf |
|
||||
ssazqBXy6p5pKR62/6fP6xCF9y3FnWvH7mrNd/IU5BWk7bcoNC6cGLUGX2TrUOLi |
|
||||
r0lZzIAMFc8dcnOnuYvwWTvN28wAR+4QPWmF1GboaANihhSzjJAiuFKMWVbKTuFP |
|
||||
zjvnGTcEi/76hu9ZIC//f6kXoDpTZFcMKFWacbQmc9r3Bhi13MGYt9koGNf4OMPI |
|
||||
Qyy6E+wLO43hHq0lUSpisHZGrZqbEAYA8OPLtPwK335efw0ZUvXnvkH3xXnFIrQ3 |
|
||||
QivpLV+S9nxmKy+YOkpbZ3DCHldabceJ7kowvzveOKtSmLar0IjxViahFyETDW22 |
|
||||
DguO7Iy82tLRBa4pjcMXK1hks7MuUfW3hUNWhz3DKw1nwqL4jUZNqj7cbiiAuUJN |
|
||||
mbjpiS4woi8FBhG9P9TKc79zKkGu3ZkWsl4Nw2ViT2o8TWb+nkt+exJTL8BkJqmn |
|
||||
29ppUCcFi7IPZvTxu7qhKMq6knOjIrmPonCxBYm/Yzn0UK8e9K00ilH06+DLT9Gm |
|
||||
WQHn4wq6VSMk3pIRQzpNDZsdOe3qJ5choJhqZef1KPrdSdWddWGv5WzW35nm0SEi |
|
||||
Xk1VtCPBYbHgGTCNRksKf5bnScUi2DoMkZIfhl9d+DHsTaOzvRdUsSwn1mkhvRXN |
|
||||
7OYn8tOLmvf7fEhq2GT5v5dzJAAAAAA= |
|
||||
-----END PKCS7----- |
|
@ -1,157 +0,0 @@ |
|||||
From angela@c2.net.au Thu May 14 13:32:27 1998 |
|
||||
X-UIDL: 83c94dd550e54329bf9571b72038b8c8 |
|
||||
Return-Path: angela@c2.net.au |
|
||||
Received: from cryptsoft.com (play.cryptsoft.com [203.56.44.3]) by pandora.cryptsoft.com (8.8.3/8.7.3) with ESMTP id NAA27838 for <tjh@cryptsoft.com>; Thu, 14 May 1998 13:32:26 +1000 (EST) |
|
||||
Message-ID: <355A6779.4B63E64C@cryptsoft.com> |
|
||||
Date: Thu, 14 May 1998 13:39:37 +1000 |
|
||||
From: Angela van Lent <angela@c2.net.au> |
|
||||
X-Mailer: Mozilla 4.03 [en] (Win95; U) |
|
||||
MIME-Version: 1.0 |
|
||||
To: tjh@cryptsoft.com |
|
||||
Subject: signed |
|
||||
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms9A58844C95949ECC78A1C54C" |
|
||||
Content-Length: 2604 |
|
||||
Status: OR |
|
||||
|
|
||||
This is a cryptographically signed message in MIME format. |
|
||||
|
|
||||
--------------ms9A58844C95949ECC78A1C54C |
|
||||
Content-Type: text/plain; charset=us-ascii |
|
||||
Content-Transfer-Encoding: 7bit |
|
||||
|
|
||||
signed body |
|
||||
|
|
||||
--------------ms9A58844C95949ECC78A1C54C |
|
||||
Content-Type: application/x-pkcs7-signature; name="smime.p7s" |
|
||||
Content-Transfer-Encoding: base64 |
|
||||
Content-Disposition: attachment; filename="smime.p7s" |
|
||||
Content-Description: S/MIME Cryptographic Signature |
|
||||
|
|
||||
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 |
|
||||
9CWR6g== |
|
||||
--------------ms9A58844C95949ECC78A1C54C-- |
|
||||
|
|
||||
|
|
||||
From angela@c2.net.au Thu May 14 13:33:16 1998 |
|
||||
X-UIDL: 8f076c44ff7c5967fd5b00c4588a8731 |
|
||||
Return-Path: angela@c2.net.au |
|
||||
Received: from cryptsoft.com (play.cryptsoft.com [203.56.44.3]) by pandora.cryptsoft.com (8.8.3/8.7.3) with ESMTP id NAA27847 for <tjh@cryptsoft.com>; Thu, 14 May 1998 13:33:15 +1000 (EST) |
|
||||
Message-ID: <355A67AB.2AF38806@cryptsoft.com> |
|
||||
Date: Thu, 14 May 1998 13:40:27 +1000 |
|
||||
From: Angela van Lent <angela@c2.net.au> |
|
||||
X-Mailer: Mozilla 4.03 [en] (Win95; U) |
|
||||
MIME-Version: 1.0 |
|
||||
To: tjh@cryptsoft.com |
|
||||
Subject: signed |
|
||||
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------msD7863B84BD61E02C407F2F5E" |
|
||||
Content-Length: 2679 |
|
||||
Status: OR |
|
||||
|
|
||||
This is a cryptographically signed message in MIME format. |
|
||||
|
|
||||
--------------msD7863B84BD61E02C407F2F5E |
|
||||
Content-Type: text/plain; charset=us-ascii |
|
||||
Content-Transfer-Encoding: 7bit |
|
||||
|
|
||||
signed body 2 |
|
||||
|
|
||||
--------------msD7863B84BD61E02C407F2F5E |
|
||||
Content-Type: application/x-pkcs7-signature; name="smime.p7s" |
|
||||
Content-Transfer-Encoding: base64 |
|
||||
Content-Disposition: attachment; filename="smime.p7s" |
|
||||
Content-Description: S/MIME Cryptographic Signature |
|
||||
|
|
||||
MIIGVgYJKoZIhvcNAQcCoIIGRzCCBkMCAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC |
|
||||
BGswggJTMIIB/aADAgECAgIEfjANBgkqhkiG9w0BAQQFADCBkjELMAkGA1UEBhMCQVUxEzAR |
|
||||
BgNVBAgTClF1ZWVuc2xhbmQxETAPBgNVBAcTCEJyaXNiYW5lMRowGAYDVQQKExFDcnlwdHNv |
|
||||
ZnQgUHR5IEx0ZDEiMCAGA1UECxMZREVNT05TVFJBVElPTiBBTkQgVEVTVElORzEbMBkGA1UE |
|
||||
AxMSREVNTyBaRVJPIFZBTFVFIENBMB4XDTk4MDUxMzA2MjY1NloXDTAwMDUxMjA2MjY1Nlow |
|
||||
gaUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFu |
|
||||
ZTEaMBgGA1UEChMRQ3J5cHRzb2Z0IFB0eSBMdGQxEjAQBgNVBAsTCVNNSU1FIDAwMzEZMBcG |
|
||||
A1UEAxMQQW5nZWxhIHZhbiBMZWVudDEjMCEGCSqGSIb3DQEJARYUYW5nZWxhQGNyeXB0c29m |
|
||||
dC5jb20wXDANBgkqhkiG9w0BAQEFAANLADBIAkEAuC3+7dAb2LhuO7gt2cTM8vsNjhG5JfDh |
|
||||
hX1Vl/wVGbKEEj0MA6vWEolvefQlxB+EzwCtR0YZ7eEC/T/4JoCyeQIDAQABoygwJjAkBglg |
|
||||
hkgBhvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EAUnSP |
|
||||
igs6TMFISTjw8cBtJYb98czgAVkVFjKyJQwYMH8FbDnCyx6NocM555nsyDstaw8fKR11Khds |
|
||||
syd3ikkrhDCCAhAwggG6AgEDMA0GCSqGSIb3DQEBBAUAMIGSMQswCQYDVQQGEwJBVTETMBEG |
|
||||
A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD |
|
||||
ExJERU1PIFpFUk8gVkFMVUUgQ0EwHhcNOTgwMzAzMDc0MTMyWhcNMDgwMjI5MDc0MTMyWjCB |
|
||||
kjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxETAPBgNVBAcTCEJyaXNiYW5l |
|
||||
MRowGAYDVQQKExFDcnlwdHNvZnQgUHR5IEx0ZDEiMCAGA1UECxMZREVNT05TVFJBVElPTiBB |
|
||||
TkQgVEVTVElORzEbMBkGA1UEAxMSREVNTyBaRVJPIFZBTFVFIENBMFwwDQYJKoZIhvcNAQEB |
|
||||
BQADSwAwSAJBAL+0E2fLej3FSCwe2A2iRnMuC3z12qHIp6Ky1wo2zZcxft7AI+RfkrWrSGtf |
|
||||
mfzBEuPrLdfulncC5Y1pNcM8RTUCAwEAATANBgkqhkiG9w0BAQQFAANBAGSbLMphL6F5pp3s |
|
||||
8o0Xyh86FHFdpVOwYx09ELLkuG17V/P9pgIc0Eo/gDMbN+KT3IdgECf8S//pCRA6RrNjcXIx |
|
||||
ggGzMIIBrwIBATCBmTCBkjELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxETAP |
|
||||
BgNVBAcTCEJyaXNiYW5lMRowGAYDVQQKExFDcnlwdHNvZnQgUHR5IEx0ZDEiMCAGA1UECxMZ |
|
||||
REVNT05TVFJBVElPTiBBTkQgVEVTVElORzEbMBkGA1UEAxMSREVNTyBaRVJPIFZBTFVFIENB |
|
||||
AgIEfjAJBgUrDgMCGgUAoIGxMBgGCSqGSIb3DQEJAzELBgkqhkiG9w0BBwEwHAYJKoZIhvcN |
|
||||
AQkFMQ8XDTk4MDUxNDAzNDAyN1owIwYJKoZIhvcNAQkEMRYEFOKcV8mNYJnM8rHQajcSEqJN |
|
||||
rwdDMFIGCSqGSIb3DQEJDzFFMEMwCgYIKoZIhvcNAwcwDgYIKoZIhvcNAwICAgCAMAcGBSsO |
|
||||
AwIHMA0GCCqGSIb3DQMCAgFAMA0GCCqGSIb3DQMCAgEoMA0GCSqGSIb3DQEBAQUABEADPE/N |
|
||||
coH+zTFuX5YpolupTKxKK8eEjc48TuADuO8bIHHDE/fEYaWunlwDuTlcFJl1ig0idffPB1qC |
|
||||
Zp8SSVVY |
|
||||
--------------msD7863B84BD61E02C407F2F5E-- |
|
||||
|
|
||||
|
|
||||
From angela@c2.net.au Thu May 14 14:05:32 1998 |
|
||||
X-UIDL: a7d629b4b9acacaee8b39371b860a32a |
|
||||
Return-Path: angela@c2.net.au |
|
||||
Received: from cryptsoft.com (play.cryptsoft.com [203.56.44.3]) by pandora.cryptsoft.com (8.8.3/8.7.3) with ESMTP id OAA28033 for <tjh@cryptsoft.com>; Thu, 14 May 1998 14:05:32 +1000 (EST) |
|
||||
Message-ID: <355A6F3B.AC385981@cryptsoft.com> |
|
||||
Date: Thu, 14 May 1998 14:12:43 +1000 |
|
||||
From: Angela van Lent <angela@c2.net.au> |
|
||||
X-Mailer: Mozilla 4.03 [en] (Win95; U) |
|
||||
MIME-Version: 1.0 |
|
||||
To: tjh@cryptsoft.com |
|
||||
Subject: encrypted |
|
||||
Content-Type: application/x-pkcs7-mime; name="smime.p7m" |
|
||||
Content-Transfer-Encoding: base64 |
|
||||
Content-Disposition: attachment; filename="smime.p7m" |
|
||||
Content-Description: S/MIME Encrypted Message |
|
||||
Content-Length: 905 |
|
||||
Status: OR |
|
||||
|
|
||||
MIAGCSqGSIb3DQEHA6CAMIACAQAxggHmMIHwAgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEG |
|
||||
A1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNUUkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQD |
|
||||
ExJERU1PIFpFUk8gVkFMVUUgQ0ECAgR+MA0GCSqGSIb3DQEBAQUABEA92N29Yk39RUY2tIVd |
|
||||
exGT2MFX3J6H8LB8aDRJjw7843ALgJ5zXpM5+f80QkAWwEN2A6Pl3VxiCeKLi435zXVyMIHw |
|
||||
AgEAMIGZMIGSMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFuZDERMA8GA1UEBxMI |
|
||||
QnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29mdCBQdHkgTHRkMSIwIAYDVQQLExlERU1PTlNU |
|
||||
UkFUSU9OIEFORCBURVNUSU5HMRswGQYDVQQDExJERU1PIFpFUk8gVkFMVUUgQ0ECAgRuMA0G |
|
||||
CSqGSIb3DQEBAQUABECR9IfyHtvnjFmZ8B2oUCEs1vxMsG0u1kxKE4RMPFyDqDCEARq7zXMg |
|
||||
nzSUI7Wgv5USSKDqcLRJeW+jvYURv/nJMIAGCSqGSIb3DQEHATAaBggqhkiG9w0DAjAOAgIA |
|
||||
oAQIrLqrij2ZMpeggAQoibtn6reRZWuWk5Iv5IAhgitr8EYE4w4ySQ7EMB6mTlBoFpccUMWX |
|
||||
BwQgQn1UoWCvYAlhDzURdbui64Dc0rS2wtj+kE/InS6y25EEEPe4NUKaF8/UlE+lo3LtILQE |
|
||||
CL3uV8k7m0iqAAAAAAAAAAAAAA== |
|
||||
|
|
@ -1,57 +0,0 @@ |
|||||
-----BEGIN RSA PRIVATE KEY----- |
|
||||
MIIBOgIBAAJBAK3nI4nuDYe3nDJES5WBc90igEstxWC4/h4YY+/ciYki35U8ets9 |
|
||||
mgaoCNYp/e9BCZHtvK2Y+fYokGJv5+cMTQsCAwEAAQJBAIHpvXvqEcOEoDRRHuIG |
|
||||
fkcB4jPHcr9KE9TpxabH6xs9beN6OJnkePXAHwaz5MnUgSnbpOKq+cw8miKjXwe/ |
|
||||
zVECIQDVLwncT2lRmXarEYHzb+q/0uaSvKhWKKt3kJasLNTrAwIhANDUc/ghut29 |
|
||||
p3jJYjurzUKuG774/5eLjPLsxPPIZzNZAiA/10hSq41UnGqHLEUIS9m2/EeEZe7b |
|
||||
bm567dfRU9OnVQIgDo8ROrZXSchEGbaog5J5r/Fle83uO8l93R3GqVxKXZkCIFfk |
|
||||
IPD5PIYQAyyod3hyKKza7ZP4CGY4oOfZetbkSGGG |
|
||||
-----END RSA PRIVATE KEY----- |
|
||||
issuer :/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=DEMONSTRATION AND TESTING/CN=DEMO ZERO VALUE CA |
|
||||
subject:/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=SMIME 003/CN=Information/Email=info@cryptsoft.com |
|
||||
serial :047D |
|
||||
|
|
||||
Certificate: |
|
||||
Data: |
|
||||
Version: 3 (0x2) |
|
||||
Serial Number: 1149 (0x47d) |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
Issuer: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=DEMONSTRATION AND TESTING, CN=DEMO ZERO VALUE CA |
|
||||
Validity |
|
||||
Not Before: May 13 05:40:58 1998 GMT |
|
||||
Not After : May 12 05:40:58 2000 GMT |
|
||||
Subject: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=SMIME 003, CN=Information/Email=info@cryptsoft.com |
|
||||
Subject Public Key Info: |
|
||||
Public Key Algorithm: rsaEncryption |
|
||||
Modulus: |
|
||||
00:ad:e7:23:89:ee:0d:87:b7:9c:32:44:4b:95:81: |
|
||||
73:dd:22:80:4b:2d:c5:60:b8:fe:1e:18:63:ef:dc: |
|
||||
89:89:22:df:95:3c:7a:db:3d:9a:06:a8:08:d6:29: |
|
||||
fd:ef:41:09:91:ed:bc:ad:98:f9:f6:28:90:62:6f: |
|
||||
e7:e7:0c:4d:0b |
|
||||
Exponent: 65537 (0x10001) |
|
||||
X509v3 extensions: |
|
||||
Netscape Comment: |
|
||||
Generated with SSLeay |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
52:15:ea:88:f4:f0:f9:0b:ef:ce:d5:f8:83:40:61:16:5e:55: |
|
||||
f9:ce:2d:d1:8b:31:5c:03:c6:2d:10:7c:61:d5:5c:0a:42:97: |
|
||||
d1:fd:65:b6:b6:84:a5:39:ec:46:ec:fc:e0:0d:d9:22:da:1b: |
|
||||
50:74:ad:92:cb:4e:90:e5:fa:7d |
|
||||
|
|
||||
-----BEGIN CERTIFICATE----- |
|
||||
MIICTDCCAfagAwIBAgICBH0wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAkFV |
|
||||
MRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UE |
|
||||
ChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsTGURFTU9OU1RSQVRJT04gQU5E |
|
||||
IFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBWQUxVRSBDQTAeFw05ODA1MTMw |
|
||||
NTQwNThaFw0wMDA1MTIwNTQwNThaMIGeMQswCQYDVQQGEwJBVTETMBEGA1UECBMK |
|
||||
UXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMRIwEAYDVQQLEwlTTUlNRSAwMDMxFDASBgNVBAMTC0luZm9ybWF0 |
|
||||
aW9uMSEwHwYJKoZIhvcNAQkBFhJpbmZvQGNyeXB0c29mdC5jb20wXDANBgkqhkiG |
|
||||
9w0BAQEFAANLADBIAkEArecjie4Nh7ecMkRLlYFz3SKASy3FYLj+Hhhj79yJiSLf |
|
||||
lTx62z2aBqgI1in970EJke28rZj59iiQYm/n5wxNCwIDAQABoygwJjAkBglghkgB |
|
||||
hvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EA |
|
||||
UhXqiPTw+QvvztX4g0BhFl5V+c4t0YsxXAPGLRB8YdVcCkKX0f1ltraEpTnsRuz8 |
|
||||
4A3ZItobUHStkstOkOX6fQ== |
|
||||
-----END CERTIFICATE----- |
|
||||
|
|
@ -1,57 +0,0 @@ |
|||||
issuer :/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=DEMONSTRATION AND TESTING/CN=DEMO ZERO VALUE CA |
|
||||
subject:/C=AU/SP=Queensland/L=Brisbane/O=Cryptsoft Pty Ltd/OU=SMIME 003/CN=Information/Email=info@cryptsoft.com |
|
||||
serial :047D |
|
||||
|
|
||||
Certificate: |
|
||||
Data: |
|
||||
Version: 3 (0x2) |
|
||||
Serial Number: 1149 (0x47d) |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
Issuer: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=DEMONSTRATION AND TESTING, CN=DEMO ZERO VALUE CA |
|
||||
Validity |
|
||||
Not Before: May 13 05:40:58 1998 GMT |
|
||||
Not After : May 12 05:40:58 2000 GMT |
|
||||
Subject: C=AU, SP=Queensland, L=Brisbane, O=Cryptsoft Pty Ltd, OU=SMIME 003, CN=Information/Email=info@cryptsoft.com |
|
||||
Subject Public Key Info: |
|
||||
Public Key Algorithm: rsaEncryption |
|
||||
Modulus: |
|
||||
00:ad:e7:23:89:ee:0d:87:b7:9c:32:44:4b:95:81: |
|
||||
73:dd:22:80:4b:2d:c5:60:b8:fe:1e:18:63:ef:dc: |
|
||||
89:89:22:df:95:3c:7a:db:3d:9a:06:a8:08:d6:29: |
|
||||
fd:ef:41:09:91:ed:bc:ad:98:f9:f6:28:90:62:6f: |
|
||||
e7:e7:0c:4d:0b |
|
||||
Exponent: 65537 (0x10001) |
|
||||
X509v3 extensions: |
|
||||
Netscape Comment: |
|
||||
Generated with SSLeay |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
52:15:ea:88:f4:f0:f9:0b:ef:ce:d5:f8:83:40:61:16:5e:55: |
|
||||
f9:ce:2d:d1:8b:31:5c:03:c6:2d:10:7c:61:d5:5c:0a:42:97: |
|
||||
d1:fd:65:b6:b6:84:a5:39:ec:46:ec:fc:e0:0d:d9:22:da:1b: |
|
||||
50:74:ad:92:cb:4e:90:e5:fa:7d |
|
||||
|
|
||||
-----BEGIN CERTIFICATE----- |
|
||||
MIICTDCCAfagAwIBAgICBH0wDQYJKoZIhvcNAQEEBQAwgZIxCzAJBgNVBAYTAkFV |
|
||||
MRMwEQYDVQQIEwpRdWVlbnNsYW5kMREwDwYDVQQHEwhCcmlzYmFuZTEaMBgGA1UE |
|
||||
ChMRQ3J5cHRzb2Z0IFB0eSBMdGQxIjAgBgNVBAsTGURFTU9OU1RSQVRJT04gQU5E |
|
||||
IFRFU1RJTkcxGzAZBgNVBAMTEkRFTU8gWkVSTyBWQUxVRSBDQTAeFw05ODA1MTMw |
|
||||
NTQwNThaFw0wMDA1MTIwNTQwNThaMIGeMQswCQYDVQQGEwJBVTETMBEGA1UECBMK |
|
||||
UXVlZW5zbGFuZDERMA8GA1UEBxMIQnJpc2JhbmUxGjAYBgNVBAoTEUNyeXB0c29m |
|
||||
dCBQdHkgTHRkMRIwEAYDVQQLEwlTTUlNRSAwMDMxFDASBgNVBAMTC0luZm9ybWF0 |
|
||||
aW9uMSEwHwYJKoZIhvcNAQkBFhJpbmZvQGNyeXB0c29mdC5jb20wXDANBgkqhkiG |
|
||||
9w0BAQEFAANLADBIAkEArecjie4Nh7ecMkRLlYFz3SKASy3FYLj+Hhhj79yJiSLf |
|
||||
lTx62z2aBqgI1in970EJke28rZj59iiQYm/n5wxNCwIDAQABoygwJjAkBglghkgB |
|
||||
hvhCAQ0EFxYVR2VuZXJhdGVkIHdpdGggU1NMZWF5MA0GCSqGSIb3DQEBBAUAA0EA |
|
||||
UhXqiPTw+QvvztX4g0BhFl5V+c4t0YsxXAPGLRB8YdVcCkKX0f1ltraEpTnsRuz8 |
|
||||
4A3ZItobUHStkstOkOX6fQ== |
|
||||
-----END CERTIFICATE----- |
|
||||
|
|
||||
-----BEGIN RSA PRIVATE KEY----- |
|
||||
MIIBOgIBAAJBAK3nI4nuDYe3nDJES5WBc90igEstxWC4/h4YY+/ciYki35U8ets9 |
|
||||
mgaoCNYp/e9BCZHtvK2Y+fYokGJv5+cMTQsCAwEAAQJBAIHpvXvqEcOEoDRRHuIG |
|
||||
fkcB4jPHcr9KE9TpxabH6xs9beN6OJnkePXAHwaz5MnUgSnbpOKq+cw8miKjXwe/ |
|
||||
zVECIQDVLwncT2lRmXarEYHzb+q/0uaSvKhWKKt3kJasLNTrAwIhANDUc/ghut29 |
|
||||
p3jJYjurzUKuG774/5eLjPLsxPPIZzNZAiA/10hSq41UnGqHLEUIS9m2/EeEZe7b |
|
||||
bm567dfRU9OnVQIgDo8ROrZXSchEGbaog5J5r/Fle83uO8l93R3GqVxKXZkCIFfk |
|
||||
IPD5PIYQAyyod3hyKKza7ZP4CGY4oOfZetbkSGGG |
|
||||
-----END RSA PRIVATE KEY----- |
|
@ -1,263 +0,0 @@ |
|||||
/* crypto/pkcs7/verify.c */ |
|
||||
/* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)
|
|
||||
* All rights reserved. |
|
||||
* |
|
||||
* This package is an SSL implementation written |
|
||||
* by Eric Young (eay@cryptsoft.com). |
|
||||
* The implementation was written so as to conform with Netscapes SSL. |
|
||||
* |
|
||||
* This library is free for commercial and non-commercial use as long as |
|
||||
* the following conditions are aheared to. The following conditions |
|
||||
* apply to all code found in this distribution, be it the RC4, RSA, |
|
||||
* lhash, DES, etc., code; not just the SSL code. The SSL documentation |
|
||||
* included with this distribution is covered by the same copyright terms |
|
||||
* except that the holder is Tim Hudson (tjh@cryptsoft.com). |
|
||||
* |
|
||||
* Copyright remains Eric Young's, and as such any Copyright notices in |
|
||||
* the code are not to be removed. |
|
||||
* If this package is used in a product, Eric Young should be given attribution |
|
||||
* as the author of the parts of the library used. |
|
||||
* This can be in the form of a textual message at program startup or |
|
||||
* in documentation (online or textual) provided with the package. |
|
||||
* |
|
||||
* Redistribution and use in source and binary forms, with or without |
|
||||
* modification, are permitted provided that the following conditions |
|
||||
* are met: |
|
||||
* 1. Redistributions of source code must retain the copyright |
|
||||
* notice, this list of conditions and the following disclaimer. |
|
||||
* 2. Redistributions in binary form must reproduce the above copyright |
|
||||
* notice, this list of conditions and the following disclaimer in the |
|
||||
* documentation and/or other materials provided with the distribution. |
|
||||
* 3. All advertising materials mentioning features or use of this software |
|
||||
* must display the following acknowledgement: |
|
||||
* "This product includes cryptographic software written by |
|
||||
* Eric Young (eay@cryptsoft.com)" |
|
||||
* The word 'cryptographic' can be left out if the rouines from the library |
|
||||
* being used are not cryptographic related :-). |
|
||||
* 4. If you include any Windows specific code (or a derivative thereof) from |
|
||||
* the apps directory (application code) you must include an acknowledgement: |
|
||||
* "This product includes software written by Tim Hudson (tjh@cryptsoft.com)" |
|
||||
* |
|
||||
* THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND |
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE |
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS |
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY |
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF |
|
||||
* SUCH DAMAGE. |
|
||||
* |
|
||||
* The licence and distribution terms for any publically available version or |
|
||||
* derivative of this code cannot be changed. i.e. this code cannot simply be |
|
||||
* copied and put under another distribution licence |
|
||||
* [including the GNU Public Licence.] |
|
||||
*/ |
|
||||
#include <stdio.h> |
|
||||
#include <string.h> |
|
||||
#include <openssl/bio.h> |
|
||||
#include <openssl/asn1.h> |
|
||||
#include <openssl/x509.h> |
|
||||
#include <openssl/pem.h> |
|
||||
#include <openssl/err.h> |
|
||||
#include "example.h" |
|
||||
|
|
||||
int verify_callback(int ok, X509_STORE_CTX *ctx); |
|
||||
|
|
||||
BIO *bio_err=NULL; |
|
||||
BIO *bio_out=NULL; |
|
||||
|
|
||||
int main(argc,argv) |
|
||||
int argc; |
|
||||
char *argv[]; |
|
||||
{ |
|
||||
PKCS7 *p7; |
|
||||
PKCS7_SIGNER_INFO *si; |
|
||||
X509_STORE_CTX cert_ctx; |
|
||||
X509_STORE *cert_store=NULL; |
|
||||
BIO *data,*detached=NULL,*p7bio=NULL; |
|
||||
char buf[1024*4]; |
|
||||
char *pp; |
|
||||
int i,printit=0; |
|
||||
STACK_OF(PKCS7_SIGNER_INFO) *sk; |
|
||||
|
|
||||
bio_err=BIO_new_fp(stderr,BIO_NOCLOSE); |
|
||||
bio_out=BIO_new_fp(stdout,BIO_NOCLOSE); |
|
||||
#ifndef OPENSSL_NO_MD2 |
|
||||
EVP_add_digest(EVP_md2()); |
|
||||
#endif |
|
||||
#ifndef OPENSSL_NO_MD5 |
|
||||
EVP_add_digest(EVP_md5()); |
|
||||
#endif |
|
||||
#ifndef OPENSSL_NO_SHA1 |
|
||||
EVP_add_digest(EVP_sha1()); |
|
||||
#endif |
|
||||
#ifndef OPENSSL_NO_MDC2 |
|
||||
EVP_add_digest(EVP_mdc2()); |
|
||||
#endif |
|
||||
|
|
||||
data=BIO_new(BIO_s_file()); |
|
||||
|
|
||||
pp=NULL; |
|
||||
while (argc > 1) |
|
||||
{ |
|
||||
argc--; |
|
||||
argv++; |
|
||||
if (strcmp(argv[0],"-p") == 0) |
|
||||
{ |
|
||||
printit=1; |
|
||||
} |
|
||||
else if ((strcmp(argv[0],"-d") == 0) && (argc >= 2)) |
|
||||
{ |
|
||||
detached=BIO_new(BIO_s_file()); |
|
||||
if (!BIO_read_filename(detached,argv[1])) |
|
||||
goto err; |
|
||||
argc--; |
|
||||
argv++; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
pp=argv[0]; |
|
||||
if (!BIO_read_filename(data,argv[0])) |
|
||||
goto err; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
if (pp == NULL) |
|
||||
BIO_set_fp(data,stdin,BIO_NOCLOSE); |
|
||||
|
|
||||
|
|
||||
/* Load the PKCS7 object from a file */ |
|
||||
if ((p7=PEM_read_bio_PKCS7(data,NULL,NULL,NULL)) == NULL) goto err; |
|
||||
|
|
||||
/* This stuff is being setup for certificate verification.
|
|
||||
* When using SSL, it could be replaced with a |
|
||||
* cert_stre=SSL_CTX_get_cert_store(ssl_ctx); */ |
|
||||
cert_store=X509_STORE_new(); |
|
||||
X509_STORE_set_default_paths(cert_store); |
|
||||
X509_STORE_load_locations(cert_store,NULL,"../../certs"); |
|
||||
X509_STORE_set_verify_cb_func(cert_store,verify_callback); |
|
||||
|
|
||||
ERR_clear_error(); |
|
||||
|
|
||||
/* We need to process the data */ |
|
||||
if ((PKCS7_get_detached(p7) || detached)) |
|
||||
{ |
|
||||
if (detached == NULL) |
|
||||
{ |
|
||||
printf("no data to verify the signature on\n"); |
|
||||
exit(1); |
|
||||
} |
|
||||
else |
|
||||
p7bio=PKCS7_dataInit(p7,detached); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
p7bio=PKCS7_dataInit(p7,NULL); |
|
||||
} |
|
||||
|
|
||||
/* We now have to 'read' from p7bio to calculate digests etc. */ |
|
||||
for (;;) |
|
||||
{ |
|
||||
i=BIO_read(p7bio,buf,sizeof(buf)); |
|
||||
/* print it? */ |
|
||||
if (i <= 0) break; |
|
||||
} |
|
||||
|
|
||||
/* We can now verify signatures */ |
|
||||
sk=PKCS7_get_signer_info(p7); |
|
||||
if (sk == NULL) |
|
||||
{ |
|
||||
printf("there are no signatures on this data\n"); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
/* Ok, first we need to, for each subject entry, see if we can verify */ |
|
||||
for (i=0; i<sk_PKCS7_SIGNER_INFO_num(sk); i++) |
|
||||
{ |
|
||||
ASN1_UTCTIME *tm; |
|
||||
char *str1,*str2; |
|
||||
int rc; |
|
||||
|
|
||||
si=sk_PKCS7_SIGNER_INFO_value(sk,i); |
|
||||
rc=PKCS7_dataVerify(cert_store,&cert_ctx,p7bio,p7,si); |
|
||||
if (rc <= 0) |
|
||||
goto err; |
|
||||
printf("signer info\n"); |
|
||||
if ((tm=get_signed_time(si)) != NULL) |
|
||||
{ |
|
||||
BIO_printf(bio_out,"Signed time:"); |
|
||||
ASN1_UTCTIME_print(bio_out,tm); |
|
||||
ASN1_UTCTIME_free(tm); |
|
||||
BIO_printf(bio_out,"\n"); |
|
||||
} |
|
||||
if (get_signed_seq2string(si,&str1,&str2)) |
|
||||
{ |
|
||||
BIO_printf(bio_out,"String 1 is %s\n",str1); |
|
||||
BIO_printf(bio_out,"String 2 is %s\n",str2); |
|
||||
} |
|
||||
|
|
||||
} |
|
||||
|
|
||||
X509_STORE_free(cert_store); |
|
||||
|
|
||||
printf("done\n"); |
|
||||
exit(0); |
|
||||
err: |
|
||||
ERR_load_crypto_strings(); |
|
||||
ERR_print_errors_fp(stderr); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
/* should be X509 * but we can just have them as char *. */ |
|
||||
int verify_callback(int ok, X509_STORE_CTX *ctx) |
|
||||
{ |
|
||||
char buf[256]; |
|
||||
X509 *err_cert; |
|
||||
int err,depth; |
|
||||
|
|
||||
err_cert=X509_STORE_CTX_get_current_cert(ctx); |
|
||||
err= X509_STORE_CTX_get_error(ctx); |
|
||||
depth= X509_STORE_CTX_get_error_depth(ctx); |
|
||||
|
|
||||
X509_NAME_oneline(X509_get_subject_name(err_cert),buf,256); |
|
||||
BIO_printf(bio_err,"depth=%d %s\n",depth,buf); |
|
||||
if (!ok) |
|
||||
{ |
|
||||
BIO_printf(bio_err,"verify error:num=%d:%s\n",err, |
|
||||
X509_verify_cert_error_string(err)); |
|
||||
if (depth < 6) |
|
||||
{ |
|
||||
ok=1; |
|
||||
X509_STORE_CTX_set_error(ctx,X509_V_OK); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
ok=0; |
|
||||
X509_STORE_CTX_set_error(ctx,X509_V_ERR_CERT_CHAIN_TOO_LONG); |
|
||||
} |
|
||||
} |
|
||||
switch (ctx->error) |
|
||||
{ |
|
||||
case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: |
|
||||
X509_NAME_oneline(X509_get_issuer_name(ctx->current_cert),buf,256); |
|
||||
BIO_printf(bio_err,"issuer= %s\n",buf); |
|
||||
break; |
|
||||
case X509_V_ERR_CERT_NOT_YET_VALID: |
|
||||
case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: |
|
||||
BIO_printf(bio_err,"notBefore="); |
|
||||
ASN1_UTCTIME_print(bio_err,X509_get_notBefore(ctx->current_cert)); |
|
||||
BIO_printf(bio_err,"\n"); |
|
||||
break; |
|
||||
case X509_V_ERR_CERT_HAS_EXPIRED: |
|
||||
case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: |
|
||||
BIO_printf(bio_err,"notAfter="); |
|
||||
ASN1_UTCTIME_print(bio_err,X509_get_notAfter(ctx->current_cert)); |
|
||||
BIO_printf(bio_err,"\n"); |
|
||||
break; |
|
||||
} |
|
||||
BIO_printf(bio_err,"verify return:%d\n",ok); |
|
||||
return(ok); |
|
||||
} |
|
@ -1,24 +0,0 @@ |
|||||
CC=cc |
|
||||
CFLAGS= -g -I../../include |
|
||||
#LIBS= -L../.. -lcrypto -lssl
|
|
||||
LIBS= -L../.. ../../libssl.a ../../libcrypto.a |
|
||||
|
|
||||
# the file conn.c requires a file "proxy.h" which I couldn't find...
|
|
||||
#EXAMPLES=base64 conn loadrsa
|
|
||||
EXAMPLES=base64 loadrsa |
|
||||
|
|
||||
all: $(EXAMPLES) |
|
||||
|
|
||||
base64: base64.o |
|
||||
$(CC) -o base64 base64.o $(LIBS) |
|
||||
#
|
|
||||
# sorry... can't find "proxy.h"
|
|
||||
#conn: conn.o
|
|
||||
# $(CC) -o conn conn.o $(LIBS)
|
|
||||
|
|
||||
loadrsa: loadrsa.o |
|
||||
$(CC) -o loadrsa loadrsa.o $(LIBS) |
|
||||
|
|
||||
clean: |
|
||||
rm -f $(EXAMPLES) *.o |
|
||||
|
|
@ -1,49 +0,0 @@ |
|||||
/* This is a simple example of using the base64 BIO to a memory BIO and then
|
|
||||
* getting the data. |
|
||||
*/ |
|
||||
#include <stdio.h> |
|
||||
#include <openssl/bio.h> |
|
||||
#include <openssl/evp.h> |
|
||||
|
|
||||
main() |
|
||||
{ |
|
||||
int i; |
|
||||
BIO *mbio,*b64bio,*bio; |
|
||||
char buf[512]; |
|
||||
char *p; |
|
||||
|
|
||||
mbio=BIO_new(BIO_s_mem()); |
|
||||
b64bio=BIO_new(BIO_f_base64()); |
|
||||
|
|
||||
bio=BIO_push(b64bio,mbio); |
|
||||
/* We now have bio pointing at b64->mem, the base64 bio encodes on
|
|
||||
* write and decodes on read */ |
|
||||
|
|
||||
for (;;) |
|
||||
{ |
|
||||
i=fread(buf,1,512,stdin); |
|
||||
if (i <= 0) break; |
|
||||
BIO_write(bio,buf,i); |
|
||||
} |
|
||||
/* We need to 'flush' things to push out the encoding of the
|
|
||||
* last few bytes. There is special encoding if it is not a |
|
||||
* multiple of 3 |
|
||||
*/ |
|
||||
BIO_flush(bio); |
|
||||
|
|
||||
printf("We have %d bytes available\n",BIO_pending(mbio)); |
|
||||
|
|
||||
/* We will now get a pointer to the data and the number of elements. */ |
|
||||
/* hmm... this one was not defined by a macro in bio.h, it will be for
|
|
||||
* 0.9.1. The other option is too just read from the memory bio. |
|
||||
*/ |
|
||||
i=(int)BIO_ctrl(mbio,BIO_CTRL_INFO,0,(char *)&p); |
|
||||
|
|
||||
printf("%d\n",i); |
|
||||
fwrite("---\n",1,4,stdout); |
|
||||
fwrite(p,1,i,stdout); |
|
||||
fwrite("---\n",1,4,stdout); |
|
||||
|
|
||||
/* This call will walk the chain freeing all the BIOs */ |
|
||||
BIO_free_all(bio); |
|
||||
} |
|
@ -1,105 +0,0 @@ |
|||||
/* NOCW */ |
|
||||
/* demos/eay/conn.c */ |
|
||||
|
|
||||
/* A minimal program to connect to a port using the sock4a protocol.
|
|
||||
* |
|
||||
* cc -I../../include conn.c -L../.. -lcrypto |
|
||||
*/ |
|
||||
#include <stdio.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <openssl/err.h> |
|
||||
#include <openssl/bio.h> |
|
||||
/* #include "proxy.h" */ |
|
||||
|
|
||||
extern int errno; |
|
||||
|
|
||||
int main(argc,argv) |
|
||||
int argc; |
|
||||
char *argv[]; |
|
||||
{ |
|
||||
PROXY *pxy; |
|
||||
char *host; |
|
||||
char buf[1024*10],*p; |
|
||||
BIO *bio; |
|
||||
int i,len,off,ret=1; |
|
||||
|
|
||||
if (argc <= 1) |
|
||||
host="localhost:4433"; |
|
||||
else |
|
||||
host=argv[1]; |
|
||||
|
|
||||
/* Lets get nice error messages */ |
|
||||
ERR_load_crypto_strings(); |
|
||||
|
|
||||
/* First, configure proxy settings */ |
|
||||
pxy=PROXY_new(); |
|
||||
PROXY_add_server(pxy,PROXY_PROTOCOL_SOCKS,"gromit:1080"); |
|
||||
|
|
||||
bio=BIO_new(BIO_s_socks4a_connect()); |
|
||||
|
|
||||
BIO_set_conn_hostname(bio,host); |
|
||||
BIO_set_proxies(bio,pxy); |
|
||||
BIO_set_socks_userid(bio,"eay"); |
|
||||
BIO_set_nbio(bio,1); |
|
||||
|
|
||||
p="GET / HTTP/1.0\r\n\r\n"; |
|
||||
len=strlen(p); |
|
||||
|
|
||||
off=0; |
|
||||
for (;;) |
|
||||
{ |
|
||||
i=BIO_write(bio,&(p[off]),len); |
|
||||
if (i <= 0) |
|
||||
{ |
|
||||
if (BIO_should_retry(bio)) |
|
||||
{ |
|
||||
fprintf(stderr,"write DELAY\n"); |
|
||||
sleep(1); |
|
||||
continue; |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
goto err; |
|
||||
} |
|
||||
} |
|
||||
off+=i; |
|
||||
len-=i; |
|
||||
if (len <= 0) break; |
|
||||
} |
|
||||
|
|
||||
for (;;) |
|
||||
{ |
|
||||
i=BIO_read(bio,buf,sizeof(buf)); |
|
||||
if (i == 0) break; |
|
||||
if (i < 0) |
|
||||
{ |
|
||||
if (BIO_should_retry(bio)) |
|
||||
{ |
|
||||
fprintf(stderr,"read DELAY\n"); |
|
||||
sleep(1); |
|
||||
continue; |
|
||||
} |
|
||||
goto err; |
|
||||
} |
|
||||
fwrite(buf,1,i,stdout); |
|
||||
} |
|
||||
|
|
||||
ret=1; |
|
||||
|
|
||||
if (0) |
|
||||
{ |
|
||||
err: |
|
||||
if (ERR_peek_error() == 0) /* system call error */ |
|
||||
{ |
|
||||
fprintf(stderr,"errno=%d ",errno); |
|
||||
perror("error"); |
|
||||
} |
|
||||
else |
|
||||
ERR_print_errors_fp(stderr); |
|
||||
} |
|
||||
BIO_free_all(bio); |
|
||||
if (pxy != NULL) PROXY_free(pxy); |
|
||||
exit(!ret); |
|
||||
return(ret); |
|
||||
} |
|
||||
|
|
@ -1,53 +0,0 @@ |
|||||
#include <stdio.h> |
|
||||
#include <openssl/rsa.h> |
|
||||
|
|
||||
/* This is a simple program to generate an RSA private key. It then
|
|
||||
* saves both the public and private key into a char array, then |
|
||||
* re-reads them. It saves them as DER encoded binary data. |
|
||||
*/ |
|
||||
|
|
||||
void callback(stage,count,arg) |
|
||||
int stage,count; |
|
||||
char *arg; |
|
||||
{ |
|
||||
FILE *out; |
|
||||
|
|
||||
out=(FILE *)arg; |
|
||||
fprintf(out,"%d",stage); |
|
||||
if (stage == 3) |
|
||||
fprintf(out,"\n"); |
|
||||
fflush(out); |
|
||||
} |
|
||||
|
|
||||
main() |
|
||||
{ |
|
||||
RSA *rsa,*pub_rsa,*priv_rsa; |
|
||||
int len; |
|
||||
unsigned char buf[1024],*p; |
|
||||
|
|
||||
rsa=RSA_generate_key(512,RSA_F4,callback,(char *)stdout); |
|
||||
|
|
||||
p=buf; |
|
||||
|
|
||||
/* Save the public key into buffer, we know it will be big enough
|
|
||||
* but we should really check how much space we need by calling the |
|
||||
* i2d functions with a NULL second parameter */ |
|
||||
len=i2d_RSAPublicKey(rsa,&p); |
|
||||
len+=i2d_RSAPrivateKey(rsa,&p); |
|
||||
|
|
||||
printf("The public and private key are now both in a char array\n"); |
|
||||
printf("and are taking up %d bytes\n",len); |
|
||||
|
|
||||
RSA_free(rsa); |
|
||||
|
|
||||
p=buf; |
|
||||
pub_rsa=d2i_RSAPublicKey(NULL,&p,(long)len); |
|
||||
len-=(p-buf); |
|
||||
priv_rsa=d2i_RSAPrivateKey(NULL,&p,(long)len); |
|
||||
|
|
||||
if ((pub_rsa == NULL) || (priv_rsa == NULL)) |
|
||||
ERR_print_errors_fp(stderr); |
|
||||
|
|
||||
RSA_free(pub_rsa); |
|
||||
RSA_free(priv_rsa); |
|
||||
} |
|
@ -1,59 +0,0 @@ |
|||||
CC=cc |
|
||||
CFLAGS= -g -I../../include -Wall |
|
||||
LIBS= -L../.. -lcrypto |
|
||||
EXAMPLES=example1 example2 example3 example4 |
|
||||
|
|
||||
all: $(EXAMPLES) |
|
||||
|
|
||||
example1: example1.o loadkeys.o |
|
||||
$(CC) -o example1 example1.o loadkeys.o $(LIBS) |
|
||||
|
|
||||
example2: example2.o loadkeys.o |
|
||||
$(CC) -o example2 example2.o loadkeys.o $(LIBS) |
|
||||
|
|
||||
example3: example3.o |
|
||||
$(CC) -o example3 example3.o $(LIBS) |
|
||||
|
|
||||
example4: example4.o |
|
||||
$(CC) -o example4 example4.o $(LIBS) |
|
||||
|
|
||||
clean: |
|
||||
rm -f $(EXAMPLES) *.o |
|
||||
|
|
||||
test: all |
|
||||
@echo |
|
||||
@echo Example 1 Demonstrates the sealing and opening APIs |
|
||||
@echo Doing the encrypt side... |
|
||||
./example1 <README >t.t |
|
||||
@echo Doing the decrypt side... |
|
||||
./example1 -d <t.t >t.2 |
|
||||
diff t.2 README |
|
||||
rm -f t.t t.2 |
|
||||
@echo example1 is OK |
|
||||
|
|
||||
@echo |
|
||||
@echo Example2 Demonstrates rsa encryption and decryption |
|
||||
@echo and it should just print \"This the clear text\" |
|
||||
./example2 |
|
||||
|
|
||||
@echo |
|
||||
@echo Example3 Demonstrates the use of symmetric block ciphers |
|
||||
@echo in this case it uses EVP_des_ede3_cbc |
|
||||
@echo i.e. triple DES in Cipher Block Chaining mode |
|
||||
@echo Doing the encrypt side... |
|
||||
./example3 ThisIsThePassword <README >t.t |
|
||||
@echo Doing the decrypt side... |
|
||||
./example3 -d ThisIsThePassword <t.t >t.2 |
|
||||
diff t.2 README |
|
||||
rm -f t.t t.2 |
|
||||
@echo example3 is OK |
|
||||
|
|
||||
@echo |
|
||||
@echo Example4 Demonstrates base64 encoding and decoding |
|
||||
@echo Doing the encrypt side... |
|
||||
./example4 <README >t.t |
|
||||
@echo Doing the decrypt side... |
|
||||
./example4 -d <t.t >t.2 |
|
||||
diff t.2 README |
|
||||
rm -f t.t t.2 |
|
||||
@echo example4 is OK |
|
@ -1,34 +0,0 @@ |
|||||
From Maurice Gittens <mgittens@gits.nl> |
|
||||
-- |
|
||||
Example programs, demonstrating some basic SSLeay crypto library |
|
||||
operations, to help you not to make the same mistakes I did. |
|
||||
|
|
||||
The following files are present. |
|
||||
- loadkeys.c Demonstrates the loading and of public and |
|
||||
private keys. |
|
||||
- loadkeys.h The interface for loadkeys.c |
|
||||
- example1.c Demonstrates the sealing and opening API's |
|
||||
- example2.c Demonstrates rsa encryption and decryption |
|
||||
- example3.c Demonstrates the use of symmetric block ciphers |
|
||||
- example4.c Demonstrates base64 and decoding |
|
||||
- Makefile A makefile you probably will have to adjust for |
|
||||
your environment |
|
||||
- README this file |
|
||||
|
|
||||
|
|
||||
The programs were written by Maurice Gittens <mgittens@gits.nl> |
|
||||
with the necesary help from Eric Young <eay@cryptsoft.com> |
|
||||
|
|
||||
You may do as you please with these programs, but please don't |
|
||||
pretend that you wrote them. |
|
||||
|
|
||||
To be complete: If you use these programs you acknowlegde that |
|
||||
you are aware that there is NO warranty of any kind associated |
|
||||
with these programs. I don't even claim that the programs work, |
|
||||
they are provided AS-IS. |
|
||||
|
|
||||
January 1997 |
|
||||
|
|
||||
Maurice |
|
||||
|
|
||||
|
|
@ -1,77 +0,0 @@ |
|||||
issuer :/C=NL/SP=Brabant/L=Eindhoven/O=Gittens Information Systems B.V./OU=Certification Services/CN=ca.gits.nl/Email=mgittens@gits.nl |
|
||||
subject:/C=NL/SP=Brabant/O=Gittens Information Systems B.V./OU=Certification Services/CN=caleb.gits.nl/Email=mgittens@gits.nl |
|
||||
serial :01 |
|
||||
|
|
||||
Certificate: |
|
||||
Data: |
|
||||
Version: 0 (0x0) |
|
||||
Serial Number: 1 (0x1) |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
Issuer: C=NL, SP=Brabant, L=Eindhoven, O=Gittens Information Systems B.V., OU=Certification Services, CN=ca.gits.nl/Email=mgittens@gits.nl |
|
||||
Validity |
|
||||
Not Before: Jan 5 13:21:16 1997 GMT |
|
||||
Not After : Jul 24 13:21:16 1997 GMT |
|
||||
Subject: C=NL, SP=Brabant, O=Gittens Information Systems B.V., OU=Certification Services, CN=caleb.gits.nl/Email=mgittens@gits.nl |
|
||||
Subject Public Key Info: |
|
||||
Public Key Algorithm: rsaEncryption |
|
||||
Modulus: |
|
||||
00:dd:82:a0:fe:a9:8d:6a:02:7e:78:d6:33:75:9b: |
|
||||
82:01:4b:12:80:ea:6b:9b:83:9e:e3:ae:dc:f3:d0: |
|
||||
71:7c:4b:ea:03:57:b4:cc:ba:44:5b:b8:4b:49:d3: |
|
||||
f6:39:cc:3d:12:1f:da:58:26:27:bc:bc:ab:a4:6d: |
|
||||
62:d1:91:5a:47:9f:80:40:c1:b9:fa:e3:1e:ef:52: |
|
||||
78:46:26:43:65:1d:f2:6b:bf:ff:c0:81:66:14:cd: |
|
||||
81:32:91:f1:f8:51:7d:0e:17:1f:27:fc:c7:51:fd: |
|
||||
1c:73:41:e5:66:43:3c:67:a3:09:b9:5e:36:50:50: |
|
||||
b1:e8:42:bd:5c:c6:2b:ec:a9:2c:fe:6a:fe:40:26: |
|
||||
64:9e:b9:bf:2d:1d:fb:d0:48:5b:82:2a:8e:ab:a4: |
|
||||
d5:7b:5f:26:84:8a:9a:69:5e:c1:71:e2:a9:59:4c: |
|
||||
2a:76:f7:fd:f4:cf:3f:d3:ce:30:72:62:65:1c:e9: |
|
||||
e9:ee:d2:fc:44:00:1e:e0:80:57:e9:41:b3:f0:44: |
|
||||
e5:0f:77:3b:1a:1f:57:5e:94:1d:c3:a5:fa:af:41: |
|
||||
8c:4c:30:6b:2b:00:84:52:0c:64:0c:a8:5b:17:16: |
|
||||
d1:1e:f8:ea:72:01:47:9a:b9:21:95:f9:71:ed:7c: |
|
||||
d2:93:54:0c:c5:9c:e8:e5:40:28:c5:a0:ca:b1:a9: |
|
||||
20:f9 |
|
||||
Exponent: 65537 (0x10001) |
|
||||
Signature Algorithm: md5withRSAEncryption |
|
||||
93:08:f9:e0:d4:c5:ca:95:de:4e:38:3b:28:87:e9:d3:b6:ce: |
|
||||
4f:69:2e:c9:09:57:2f:fa:e2:50:9f:39:ec:f3:84:e8:3a:8f: |
|
||||
9b:c3:06:62:90:49:93:6d:23:7a:2b:3d:7b:f9:46:32:18:d3: |
|
||||
87:44:49:f7:29:2f:f3:58:97:70:c3:45:5b:90:52:1c:df:fb: |
|
||||
a8:a3:a1:29:53:a3:4c:ed:d2:51:d0:44:98:a4:14:6f:76:9d: |
|
||||
0d:03:76:e5:d3:13:21:ce:a3:4d:2a:77:fe:ad:b3:47:6d:42: |
|
||||
b9:4a:0e:ff:61:f4:ec:62:b2:3b:00:9c:ac:16:a2:ec:19:c8: |
|
||||
c7:3d:d7:7d:97:cd:4d:1a:d2:00:07:4e:40:3d:b9:ba:1e:e2: |
|
||||
fe:81:28:57:b9:ad:2b:74:59:b0:9f:8b:a5:98:d3:75:06:67: |
|
||||
4a:04:11:b2:ea:1a:8c:e0:d4:be:c8:0c:46:76:7f:5f:5a:7b: |
|
||||
72:09:dd:b6:d3:6b:97:70:e8:7e:17:74:1c:f7:3a:5f:e3:fa: |
|
||||
c2:f7:95:bd:74:5e:44:4b:9b:bd:27:de:02:7f:87:1f:68:68: |
|
||||
60:b9:f4:1d:2b:7b:ce:ef:b1:7f:3a:be:b9:66:60:54:6f:0c: |
|
||||
a0:dd:8c:03:a7:f1:9f:f8:0e:8d:bb:c6:ba:77:61:f7:8e:be: |
|
||||
28:ba:d8:4f |
|
||||
|
|
||||
-----BEGIN CERTIFICATE----- |
|
||||
MIIDzzCCArcCAQEwDQYJKoZIhvcNAQEEBQAwgbUxCzAJBgNVBAYTAk5MMRAwDgYD |
|
||||
VQQIEwdCcmFiYW50MRIwEAYDVQQHEwlFaW5kaG92ZW4xKTAnBgNVBAoTIEdpdHRl |
|
||||
bnMgSW5mb3JtYXRpb24gU3lzdGVtcyBCLlYuMR8wHQYDVQQLExZDZXJ0aWZpY2F0 |
|
||||
aW9uIFNlcnZpY2VzMRMwEQYDVQQDEwpjYS5naXRzLm5sMR8wHQYJKoZIhvcNAQkB |
|
||||
FhBtZ2l0dGVuc0BnaXRzLm5sMB4XDTk3MDEwNTEzMjExNloXDTk3MDcyNDEzMjEx |
|
||||
NlowgaQxCzAJBgNVBAYTAk5MMRAwDgYDVQQIEwdCcmFiYW50MSkwJwYDVQQKEyBH |
|
||||
aXR0ZW5zIEluZm9ybWF0aW9uIFN5c3RlbXMgQi5WLjEfMB0GA1UECxMWQ2VydGlm |
|
||||
aWNhdGlvbiBTZXJ2aWNlczEWMBQGA1UEAxMNY2FsZWIuZ2l0cy5ubDEfMB0GCSqG |
|
||||
SIb3DQEJARYQbWdpdHRlbnNAZ2l0cy5ubDCCASIwDQYJKoZIhvcNAQEBBQADggEP |
|
||||
ADCCAQoCggEBAN2CoP6pjWoCfnjWM3WbggFLEoDqa5uDnuOu3PPQcXxL6gNXtMy6 |
|
||||
RFu4S0nT9jnMPRIf2lgmJ7y8q6RtYtGRWkefgEDBufrjHu9SeEYmQ2Ud8mu//8CB |
|
||||
ZhTNgTKR8fhRfQ4XHyf8x1H9HHNB5WZDPGejCbleNlBQsehCvVzGK+ypLP5q/kAm |
|
||||
ZJ65vy0d+9BIW4Iqjquk1XtfJoSKmmlewXHiqVlMKnb3/fTPP9POMHJiZRzp6e7S |
|
||||
/EQAHuCAV+lBs/BE5Q93OxofV16UHcOl+q9BjEwwaysAhFIMZAyoWxcW0R746nIB |
|
||||
R5q5IZX5ce180pNUDMWc6OVAKMWgyrGpIPkCAwEAATANBgkqhkiG9w0BAQQFAAOC |
|
||||
AQEAkwj54NTFypXeTjg7KIfp07bOT2kuyQlXL/riUJ857POE6DqPm8MGYpBJk20j |
|
||||
eis9e/lGMhjTh0RJ9ykv81iXcMNFW5BSHN/7qKOhKVOjTO3SUdBEmKQUb3adDQN2 |
|
||||
5dMTIc6jTSp3/q2zR21CuUoO/2H07GKyOwCcrBai7BnIxz3XfZfNTRrSAAdOQD25 |
|
||||
uh7i/oEoV7mtK3RZsJ+LpZjTdQZnSgQRsuoajODUvsgMRnZ/X1p7cgndttNrl3Do |
|
||||
fhd0HPc6X+P6wveVvXReREubvSfeAn+HH2hoYLn0HSt7zu+xfzq+uWZgVG8MoN2M |
|
||||
A6fxn/gOjbvGundh946+KLrYTw== |
|
||||
-----END CERTIFICATE----- |
|
||||
|
|
@ -1,198 +0,0 @@ |
|||||
/* NOCW */ |
|
||||
/*
|
|
||||
Please read the README file for condition of use, before |
|
||||
using this software. |
|
||||
|
|
||||
Maurice Gittens <mgittens@gits.nl> January 1997 |
|
||||
*/ |
|
||||
|
|
||||
#include <unistd.h> |
|
||||
#include <stdio.h> |
|
||||
#include <netinet/in.h> |
|
||||
#include <fcntl.h> |
|
||||
#include <strings.h> |
|
||||
#include <stdlib.h> |
|
||||
|
|
||||
#include <openssl/rsa.h> |
|
||||
#include <openssl/evp.h> |
|
||||
#include <openssl/objects.h> |
|
||||
#include <openssl/x509.h> |
|
||||
#include <openssl/err.h> |
|
||||
#include <openssl/pem.h> |
|
||||
#include <openssl/ssl.h> |
|
||||
|
|
||||
#include "loadkeys.h" |
|
||||
|
|
||||
#define PUBFILE "cert.pem" |
|
||||
#define PRIVFILE "privkey.pem" |
|
||||
|
|
||||
#define STDIN 0 |
|
||||
#define STDOUT 1 |
|
||||
|
|
||||
void main_encrypt(void); |
|
||||
void main_decrypt(void); |
|
||||
|
|
||||
static const char *usage = "Usage: example1 [-d]\n"; |
|
||||
|
|
||||
int main(int argc, char *argv[]) |
|
||||
{ |
|
||||
|
|
||||
ERR_load_crypto_strings(); |
|
||||
|
|
||||
if ((argc == 1)) |
|
||||
{ |
|
||||
main_encrypt(); |
|
||||
} |
|
||||
else if ((argc == 2) && !strcmp(argv[1],"-d")) |
|
||||
{ |
|
||||
main_decrypt(); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
printf("%s",usage); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
void main_encrypt(void) |
|
||||
{ |
|
||||
unsigned int ebuflen; |
|
||||
EVP_CIPHER_CTX ectx; |
|
||||
unsigned char iv[EVP_MAX_IV_LENGTH]; |
|
||||
unsigned char *ekey[1]; |
|
||||
int readlen; |
|
||||
int ekeylen, net_ekeylen; |
|
||||
EVP_PKEY *pubKey[1]; |
|
||||
char buf[512]; |
|
||||
char ebuf[512]; |
|
||||
|
|
||||
memset(iv, '\0', sizeof(iv)); |
|
||||
|
|
||||
pubKey[0] = ReadPublicKey(PUBFILE); |
|
||||
|
|
||||
if(!pubKey[0]) |
|
||||
{ |
|
||||
fprintf(stderr,"Error: can't load public key"); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
ekey[0] = malloc(EVP_PKEY_size(pubKey[0])); |
|
||||
if (!ekey[0]) |
|
||||
{ |
|
||||
EVP_PKEY_free(pubKey[0]); |
|
||||
perror("malloc"); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
EVP_SealInit(&ectx, |
|
||||
EVP_des_ede3_cbc(), |
|
||||
ekey, |
|
||||
&ekeylen, |
|
||||
iv, |
|
||||
pubKey, |
|
||||
1); |
|
||||
|
|
||||
net_ekeylen = htonl(ekeylen); |
|
||||
write(STDOUT, (char*)&net_ekeylen, sizeof(net_ekeylen)); |
|
||||
write(STDOUT, ekey[0], ekeylen); |
|
||||
write(STDOUT, iv, sizeof(iv)); |
|
||||
|
|
||||
while(1) |
|
||||
{ |
|
||||
readlen = read(STDIN, buf, sizeof(buf)); |
|
||||
|
|
||||
if (readlen <= 0) |
|
||||
{ |
|
||||
if (readlen < 0) |
|
||||
perror("read"); |
|
||||
|
|
||||
break; |
|
||||
} |
|
||||
|
|
||||
EVP_SealUpdate(&ectx, ebuf, &ebuflen, buf, readlen); |
|
||||
|
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
} |
|
||||
|
|
||||
EVP_SealFinal(&ectx, ebuf, &ebuflen); |
|
||||
|
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
|
|
||||
EVP_PKEY_free(pubKey[0]); |
|
||||
free(ekey[0]); |
|
||||
} |
|
||||
|
|
||||
void main_decrypt(void) |
|
||||
{ |
|
||||
char buf[520]; |
|
||||
char ebuf[512]; |
|
||||
unsigned int buflen; |
|
||||
EVP_CIPHER_CTX ectx; |
|
||||
unsigned char iv[EVP_MAX_IV_LENGTH]; |
|
||||
unsigned char *encryptKey; |
|
||||
unsigned int ekeylen; |
|
||||
EVP_PKEY *privateKey; |
|
||||
|
|
||||
memset(iv, '\0', sizeof(iv)); |
|
||||
|
|
||||
privateKey = ReadPrivateKey(PRIVFILE); |
|
||||
if (!privateKey) |
|
||||
{ |
|
||||
fprintf(stderr, "Error: can't load private key"); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
read(STDIN, &ekeylen, sizeof(ekeylen)); |
|
||||
ekeylen = ntohl(ekeylen); |
|
||||
|
|
||||
if (ekeylen != EVP_PKEY_size(privateKey)) |
|
||||
{ |
|
||||
EVP_PKEY_free(privateKey); |
|
||||
fprintf(stderr, "keylength mismatch"); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
encryptKey = malloc(sizeof(char) * ekeylen); |
|
||||
if (!encryptKey) |
|
||||
{ |
|
||||
EVP_PKEY_free(privateKey); |
|
||||
perror("malloc"); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
read(STDIN, encryptKey, ekeylen); |
|
||||
read(STDIN, iv, sizeof(iv)); |
|
||||
EVP_OpenInit(&ectx, |
|
||||
EVP_des_ede3_cbc(), |
|
||||
encryptKey, |
|
||||
ekeylen, |
|
||||
iv, |
|
||||
privateKey); |
|
||||
|
|
||||
while(1) |
|
||||
{ |
|
||||
int readlen = read(STDIN, ebuf, sizeof(ebuf)); |
|
||||
|
|
||||
if (readlen <= 0) |
|
||||
{ |
|
||||
if (readlen < 0) |
|
||||
perror("read"); |
|
||||
|
|
||||
break; |
|
||||
} |
|
||||
|
|
||||
EVP_OpenUpdate(&ectx, buf, &buflen, ebuf, readlen); |
|
||||
write(STDOUT, buf, buflen); |
|
||||
} |
|
||||
|
|
||||
EVP_OpenFinal(&ectx, buf, &buflen); |
|
||||
|
|
||||
write(STDOUT, buf, buflen); |
|
||||
|
|
||||
EVP_PKEY_free(privateKey); |
|
||||
free(encryptKey); |
|
||||
} |
|
||||
|
|
||||
|
|
@ -1,75 +0,0 @@ |
|||||
/* NOCW */ |
|
||||
/*
|
|
||||
Please read the README file for condition of use, before |
|
||||
using this software. |
|
||||
|
|
||||
Maurice Gittens <mgittens@gits.nl> January 1997 |
|
||||
*/ |
|
||||
|
|
||||
#include <stdlib.h> |
|
||||
#include <stdio.h> |
|
||||
#include <strings.h> |
|
||||
|
|
||||
#include <openssl/rsa.h> |
|
||||
#include <openssl/evp.h> |
|
||||
#include <openssl/objects.h> |
|
||||
#include <openssl/x509.h> |
|
||||
#include <openssl/err.h> |
|
||||
#include <openssl/pem.h> |
|
||||
#include <openssl/ssl.h> |
|
||||
|
|
||||
#include "loadkeys.h" |
|
||||
|
|
||||
#define PUBFILE "cert.pem" |
|
||||
#define PRIVFILE "privkey.pem" |
|
||||
#define STDIN 0 |
|
||||
#define STDOUT 1 |
|
||||
|
|
||||
int main() |
|
||||
{ |
|
||||
char *ct = "This the clear text"; |
|
||||
char *buf; |
|
||||
char *buf2; |
|
||||
EVP_PKEY *pubKey; |
|
||||
EVP_PKEY *privKey; |
|
||||
int len; |
|
||||
|
|
||||
ERR_load_crypto_strings(); |
|
||||
|
|
||||
privKey = ReadPrivateKey(PRIVFILE); |
|
||||
if (!privKey) |
|
||||
{ |
|
||||
ERR_print_errors_fp (stderr); |
|
||||
exit (1); |
|
||||
} |
|
||||
|
|
||||
pubKey = ReadPublicKey(PUBFILE); |
|
||||
if(!pubKey) |
|
||||
{ |
|
||||
EVP_PKEY_free(privKey); |
|
||||
fprintf(stderr,"Error: can't load public key"); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
/* No error checking */ |
|
||||
buf = malloc(EVP_PKEY_size(pubKey)); |
|
||||
buf2 = malloc(EVP_PKEY_size(pubKey)); |
|
||||
|
|
||||
len = RSA_public_encrypt(strlen(ct)+1, ct, buf, pubKey->pkey.rsa,RSA_PKCS1_PADDING); |
|
||||
|
|
||||
if (len != EVP_PKEY_size(pubKey)) |
|
||||
{ |
|
||||
fprintf(stderr,"Error: ciphertext should match length of key\n"); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
RSA_private_decrypt(len, buf, buf2, privKey->pkey.rsa,RSA_PKCS1_PADDING); |
|
||||
|
|
||||
printf("%s\n", buf2); |
|
||||
|
|
||||
EVP_PKEY_free(privKey); |
|
||||
EVP_PKEY_free(pubKey); |
|
||||
free(buf); |
|
||||
free(buf2); |
|
||||
return 0; |
|
||||
} |
|
@ -1,87 +0,0 @@ |
|||||
/* NOCW */ |
|
||||
/*
|
|
||||
Please read the README file for condition of use, before |
|
||||
using this software. |
|
||||
|
|
||||
Maurice Gittens <mgittens@gits.nl> January 1997 |
|
||||
|
|
||||
*/ |
|
||||
|
|
||||
#include <stdio.h> |
|
||||
#include <unistd.h> |
|
||||
#include <fcntl.h> |
|
||||
#include <sys/stat.h> |
|
||||
#include <openssl/evp.h> |
|
||||
|
|
||||
#define STDIN 0 |
|
||||
#define STDOUT 1 |
|
||||
#define BUFLEN 512 |
|
||||
#define INIT_VECTOR "12345678" |
|
||||
#define ENCRYPT 1 |
|
||||
#define DECRYPT 0 |
|
||||
#define ALG EVP_des_ede3_cbc() |
|
||||
|
|
||||
static const char *usage = "Usage: example3 [-d] password\n"; |
|
||||
|
|
||||
void do_cipher(char *,int); |
|
||||
|
|
||||
int main(int argc, char *argv[]) |
|
||||
{ |
|
||||
if ((argc == 2)) |
|
||||
{ |
|
||||
do_cipher(argv[1],ENCRYPT); |
|
||||
} |
|
||||
else if ((argc == 3) && !strcmp(argv[1],"-d")) |
|
||||
{ |
|
||||
do_cipher(argv[2],DECRYPT); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
fprintf(stderr,"%s", usage); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
void do_cipher(char *pw, int operation) |
|
||||
{ |
|
||||
char buf[BUFLEN]; |
|
||||
char ebuf[BUFLEN + 8]; |
|
||||
unsigned int ebuflen; /* rc; */ |
|
||||
unsigned char iv[EVP_MAX_IV_LENGTH], key[EVP_MAX_KEY_LENGTH]; |
|
||||
/* unsigned int ekeylen, net_ekeylen; */ |
|
||||
EVP_CIPHER_CTX ectx; |
|
||||
|
|
||||
memcpy(iv, INIT_VECTOR, sizeof(iv)); |
|
||||
|
|
||||
EVP_BytesToKey(ALG, EVP_md5(), "salu", pw, strlen(pw), 1, key, iv); |
|
||||
|
|
||||
EVP_CIPHER_CTX_init(&ectx); |
|
||||
EVP_CipherInit_ex(&ectx, ALG, NULL, key, iv, operation); |
|
||||
|
|
||||
while(1) |
|
||||
{ |
|
||||
int readlen = read(STDIN, buf, sizeof(buf)); |
|
||||
|
|
||||
if (readlen <= 0) |
|
||||
{ |
|
||||
if (!readlen) |
|
||||
break; |
|
||||
else |
|
||||
{ |
|
||||
perror("read"); |
|
||||
exit(1); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
EVP_CipherUpdate(&ectx, ebuf, &ebuflen, buf, readlen); |
|
||||
|
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
} |
|
||||
|
|
||||
EVP_CipherFinal_ex(&ectx, ebuf, &ebuflen); |
|
||||
EVP_CIPHER_CTX_cleanup(&ectx); |
|
||||
|
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
} |
|
@ -1,123 +0,0 @@ |
|||||
/* NOCW */ |
|
||||
/*
|
|
||||
Please read the README file for condition of use, before |
|
||||
using this software. |
|
||||
|
|
||||
Maurice Gittens <mgittens@gits.nl> January 1997 |
|
||||
|
|
||||
*/ |
|
||||
|
|
||||
#include <stdio.h> |
|
||||
#include <unistd.h> |
|
||||
#include <fcntl.h> |
|
||||
#include <sys/stat.h> |
|
||||
#include <openssl/evp.h> |
|
||||
|
|
||||
#define STDIN 0 |
|
||||
#define STDOUT 1 |
|
||||
#define BUFLEN 512 |
|
||||
|
|
||||
static const char *usage = "Usage: example4 [-d]\n"; |
|
||||
|
|
||||
void do_encode(void); |
|
||||
void do_decode(void); |
|
||||
|
|
||||
int main(int argc, char *argv[]) |
|
||||
{ |
|
||||
if ((argc == 1)) |
|
||||
{ |
|
||||
do_encode(); |
|
||||
} |
|
||||
else if ((argc == 2) && !strcmp(argv[1],"-d")) |
|
||||
{ |
|
||||
do_decode(); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
fprintf(stderr,"%s", usage); |
|
||||
exit(1); |
|
||||
} |
|
||||
|
|
||||
return 0; |
|
||||
} |
|
||||
|
|
||||
void do_encode() |
|
||||
{ |
|
||||
char buf[BUFLEN]; |
|
||||
char ebuf[BUFLEN+24]; |
|
||||
unsigned int ebuflen; |
|
||||
EVP_ENCODE_CTX ectx; |
|
||||
|
|
||||
EVP_EncodeInit(&ectx); |
|
||||
|
|
||||
while(1) |
|
||||
{ |
|
||||
int readlen = read(STDIN, buf, sizeof(buf)); |
|
||||
|
|
||||
if (readlen <= 0) |
|
||||
{ |
|
||||
if (!readlen) |
|
||||
break; |
|
||||
else |
|
||||
{ |
|
||||
perror("read"); |
|
||||
exit(1); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
EVP_EncodeUpdate(&ectx, ebuf, &ebuflen, buf, readlen); |
|
||||
|
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
} |
|
||||
|
|
||||
EVP_EncodeFinal(&ectx, ebuf, &ebuflen); |
|
||||
|
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
} |
|
||||
|
|
||||
void do_decode() |
|
||||
{ |
|
||||
char buf[BUFLEN]; |
|
||||
char ebuf[BUFLEN+24]; |
|
||||
unsigned int ebuflen; |
|
||||
EVP_ENCODE_CTX ectx; |
|
||||
|
|
||||
EVP_DecodeInit(&ectx); |
|
||||
|
|
||||
while(1) |
|
||||
{ |
|
||||
int readlen = read(STDIN, buf, sizeof(buf)); |
|
||||
int rc; |
|
||||
|
|
||||
if (readlen <= 0) |
|
||||
{ |
|
||||
if (!readlen) |
|
||||
break; |
|
||||
else |
|
||||
{ |
|
||||
perror("read"); |
|
||||
exit(1); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
rc = EVP_DecodeUpdate(&ectx, ebuf, &ebuflen, buf, readlen); |
|
||||
if (rc <= 0) |
|
||||
{ |
|
||||
if (!rc) |
|
||||
{ |
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
break; |
|
||||
} |
|
||||
|
|
||||
fprintf(stderr, "Error: decoding message\n"); |
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
} |
|
||||
|
|
||||
EVP_DecodeFinal(&ectx, ebuf, &ebuflen); |
|
||||
|
|
||||
write(STDOUT, ebuf, ebuflen); |
|
||||
} |
|
||||
|
|
@ -1,72 +0,0 @@ |
|||||
/* NOCW */ |
|
||||
/*
|
|
||||
Please read the README file for condition of use, before |
|
||||
using this software. |
|
||||
|
|
||||
Maurice Gittens <mgittens@gits.nl> January 1997 |
|
||||
|
|
||||
*/ |
|
||||
|
|
||||
#include <unistd.h> |
|
||||
#include <stdio.h> |
|
||||
#include <netinet/in.h> |
|
||||
#include <fcntl.h> |
|
||||
#include <strings.h> |
|
||||
#include <stdlib.h> |
|
||||
|
|
||||
#include <openssl/rsa.h> |
|
||||
#include <openssl/evp.h> |
|
||||
#include <openssl/objects.h> |
|
||||
#include <openssl/x509.h> |
|
||||
#include <openssl/err.h> |
|
||||
#include <openssl/pem.h> |
|
||||
#include <openssl/ssl.h> |
|
||||
|
|
||||
EVP_PKEY * ReadPublicKey(const char *certfile) |
|
||||
{ |
|
||||
FILE *fp = fopen (certfile, "r"); |
|
||||
X509 *x509; |
|
||||
EVP_PKEY *pkey; |
|
||||
|
|
||||
if (!fp) |
|
||||
return NULL; |
|
||||
|
|
||||
x509 = PEM_read_X509(fp, NULL, 0, NULL); |
|
||||
|
|
||||
if (x509 == NULL) |
|
||||
{ |
|
||||
ERR_print_errors_fp (stderr); |
|
||||
return NULL; |
|
||||
} |
|
||||
|
|
||||
fclose (fp); |
|
||||
|
|
||||
pkey=X509_extract_key(x509); |
|
||||
|
|
||||
X509_free(x509); |
|
||||
|
|
||||
if (pkey == NULL) |
|
||||
ERR_print_errors_fp (stderr); |
|
||||
|
|
||||
return pkey; |
|
||||
} |
|
||||
|
|
||||
EVP_PKEY *ReadPrivateKey(const char *keyfile) |
|
||||
{ |
|
||||
FILE *fp = fopen(keyfile, "r"); |
|
||||
EVP_PKEY *pkey; |
|
||||
|
|
||||
if (!fp) |
|
||||
return NULL; |
|
||||
|
|
||||
pkey = PEM_read_PrivateKey(fp, NULL, 0, NULL); |
|
||||
|
|
||||
fclose (fp); |
|
||||
|
|
||||
if (pkey == NULL) |
|
||||
ERR_print_errors_fp (stderr); |
|
||||
|
|
||||
return pkey; |
|
||||
} |
|
||||
|
|
||||
|
|
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue