Where am i going wrong here?

[EMAIL PROTECTED] openssl]# cat sign_verify.c
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <string.h>

#include <openssl/bio.h>
#include <openssl/rsa.h>
#include <openssl/pem.h>
#include <openssl/err.h>

int main(void)
{

       char* message = "Hello World";
       unsigned char* signature;
       unsigned int slen;
       unsigned int verified;

       char *privkey = "-----BEGIN RSA PRIVATE
KEY-----\nMIGmAgEAAiAA+sX9Vg6kQR7FbhajVXMLIq5UnpZOasUMrOhVTw3ePQIDAQABAiAA\n+sEXfQHPBL68NES2ti7/B9csC6CUs3gSR8knfq4mkQIQD+2r/g/2nj3aLNlVZ/D5\n1wIQD75otLoIRzxXlMfjgtWuCwIQB3E4RFv3Eda6guwFEKyyPwIQBVoOsdDDW6PR\nicvhNOp6PQIQBIZ8VS7kFbFYbc2BxMQhhg==\n-----END
RSA PRIVATE KEY-----";

       char *pubkey = "-----BEGIN PUBLIC
KEY-----\nMDswDQYJKoZIhvcNAQEBBQADKgAwJwIgAPrF/VYOpEEexW4Wo1VzCyKuVJ6WTmrF\nDKzoVU8N3j0CAwEAAQ==\n-----END
PUBLIC KEY-----";

       RSA *private_key;
       RSA *public_key;

       BIO *priv_bio;
       BIO *pub_bio;

/////////////////////////////////////////////////////

  priv_bio = BIO_new_mem_buf(privkey, -1);
  if(priv_bio == NULL) {
     ERR_print_errors_fp(stdout);
     return 1;
  }

  private_key = PEM_read_bio_RSAPrivateKey(priv_bio, NULL, NULL, NULL);
  if(private_key == NULL) {
     ERR_print_errors_fp(stdout);
  }

       signature = (unsigned char*) malloc(RSA_size(private_key));
       if(RSA_sign(NID_md5, (unsigned char*) message, strlen(message),
signature, &slen, private_key) != 1) {
               ERR_print_errors_fp(stdout);
       }

//////////////////////////////////////////////////

       pub_bio = BIO_new_mem_buf(pubkey, -1);
       if(pub_bio == NULL) {
               ERR_print_errors_fp(stdout);
               return 1;
       }

       public_key = PEM_read_bio_RSA_PUBKEY(pub_bio, NULL, NULL, NULL);
  if(public_key == NULL) {
     ERR_print_errors_fp(stdout);
  }
       verified = RSA_verify(NID_md5, (unsigned char*) message,
strlen(message), signature, slen, public_key);

/////////////////////////////////////////////////////

       printf("VERIFIED: %d\n",verified);

       RSA_free(private_key);

       RSA_free(public_key);

       return 0;
}


[EMAIL PROTECTED] openssl]# gcc sign_verify.c -lssl
[EMAIL PROTECTED] openssl]# ./a.out
25493:error:04075070:lib(4):func(117):reason(112):rsa_sign.c:118:
VERIFIED: 0




______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to