[prev in list] [next in list] [prev in thread] [next in thread]
List: openssl-dev
Subject: RE: RSA-signing a previously-digested message
From: Frank Balluffi <frankb () valicert ! com>
Date: 2001-11-29 13:53:09
[Download RAW message or body]
Amodhini,
Try calling SSLeay_add_all_algorithms at the top of main.
Frank
> -----Original Message-----
> From: Amodhini U [mailto:amodhini@yahoo.com]
> Sent: Thursday, November 29, 2001 6:06 AM
> To: openssl-dev@openssl.org
> Cc: amodhini@yahoo.com
> Subject: RSA-signing a previously-digested message
>
>
> Hi,
>
> I'm having problems RSA-signing a previously-digested
> message.
>
> I'm trying to RSA-encrypt (with my RSA private key) a
> very short binary string. (The plaintext binary string
> is actually an MD5 hash, but previously stored, not
> generated on-the-fly, so the hashing-context has not
> been preserved.)
>
> I read through the OpenSSL-dev list discussions on
> this topic. I tried using RSA_sign() but that resulted
> in a segmentation fault. Then I tried using
> RSA_private_encrypt(), but that too gave the same
> segmentation fault.
>
> My modulus is 1024-bit, my plaintext is 128-bit. I
> want to use raw RSA, hence pad = RSA_NO_PADDING.
> I don't want to use EVP at all if I can help it. Nor
> BIO.
> I don't want to preserve any Algorithm Identifier
> information, neither for the hashing nor for the
> encryption (because I know they are MD5 and
> RSA-1024-bit, respectively).
>
> I've appended my code to this email. Could you please
> tell me where I'm making my mistakes? Could you please
> point me to working code for RSA-signing an
> already-stored digest? And also for verifying that
> signature?
>
> Thanks very much, in advance.
>
> Amodhini U
>
> amodhini@yahoo.com
>
>
> /* The code: */
> #include <stdio.h>
> #include <string.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>
>
> int main(int argc, char **argv)
> {
> FILE *fp;
> EVP_PKEY *privatekey;
>
> unsigned char *rsa_in = "0123456789abcdef";
> int rsa_inlen = 17;
> unsigned char pad = RSA_NO_PADDING;
> unsigned char *rsa_out = NULL;
> int rsa_outlen = 0;
> RSA *rsa;
> rsa = RSA_new();
>
> /* Read the private key */
> fp = fopen("/path/to/my/privatekey.pem", "r");
> if (fp == NULL)
> printf("Error opening privatekey.pem file!\n");
>
> privatekey = PEM_read_RSAPrivateKey(fp, &rsa, NULL,
> NULL);
> fclose(fp);
>
> if (privatekey == NULL)
> printf("Error reading private key!\n");
>
> rsa_outlen = RSA_private_encrypt(rsa_inlen,
> rsa_in, rsa_out, privatekey, pad);
> if (rsa_outlen == -1)
> ERR_print_errors_fp(stderr);
>
> RSA_free(rsa);
> return 0;
> }
>
>
> __________________________________________________
> Do You Yahoo!?
> Yahoo! GeoCities - quick and easy web site hosting, just $8.95/month.
> http://geocities.yahoo.com/ps/info1
> ______________________________________________________________________
> OpenSSL Project http://www.openssl.org
> Development Mailing List openssl-dev@openssl.org
> Automated List Manager majordomo@openssl.org
>
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List openssl-dev@openssl.org
Automated List Manager majordomo@openssl.org
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic