rsa_util_sign
, rsa_util_verify
,
rsa_util_verify_priv
—
RSA digital signature routines
PDEL Library (libpdel, -lpdel)
#include <sys/types.h>
#include <pdel/util/rsa_util.h>
int
rsa_util_sign
(const
char *privkeyfile, const
u_char *md5, u_char
*sig, size_t
siglen);
int
rsa_util_verify
(const
char *pubkeyfile, const
u_char *md5, const u_char
*sig, size_t
siglen);
int
rsa_util_verify_priv
(const
char *privkeyfile, const
u_char *md5, const u_char
*sig, size_t
siglen);
These routines are convenience wrappers around the OpenSSL crypto library for
creating and verifying RSA digital signatures. They use the
md5(3) hash
of the original document for the actual signing operation.
rsa_util_sign
() creates a digital
signature. privkeyfile is the pathname of the private
key file (which must be unencrypted). md5 is the hash
of the document to be signed. sig points to a buffer
of at least 128 bytes. siglen is the size of the
buffer. rsa_util_sign
() returns the length of the
resulting signature, or -1 (with errno set) if there
was an error.
rsa_util_verify
() verifies a digital
signature. pubkeyfile is the pathname of the public
key file. md5 is the hash of the document to be
signed. sig points to the signature to verify, having
length siglen.
rsa_util_verify
() returns 1 if the signature is
valid, otherwise 0.
rsa_util_verify_priv
() functions exactly
like rsa_util_verify
() except that the private key
file (which also contains the public key) is passed as the first
argument.
To create a new RSA private key:
openssl genrsa -rand /dev/random -out mykey.key 1024
To view the contents of an RSA private key file:
openssl rsa -in mykey.key -text -noout
To extract the RSA public key from an RSA private key file:
openssl rsa -in mykey.key -pubout -out mykey.pub
To view the contents of an RSA public key file:
openssl rsa -pubin -in mykey.pub -text -noout
The PDEL library was developed at Packet Design, LLC.
http://www.packetdesign.com/
Archie Cobbs ⟨archie@freebsd.org⟩