aboutsummaryrefslogtreecommitdiffstats
path: root/apps/rsa.c
diff options
context:
space:
mode:
authorDr. Stephen Henson <steve@openssl.org>2000-06-15 23:48:05 +0000
committerDr. Stephen Henson <steve@openssl.org>2000-06-15 23:48:05 +0000
commitd3ed8ceb3d5f4f6318e96a147433cb1b09bec211 (patch)
tree411ed361228135a2f7b6d32568eed40dd3ed514c /apps/rsa.c
parent569e7f6ef21a2cf0bac274ee0c3176fa639249f2 (diff)
downloadopenssl-d3ed8ceb3d5f4f6318e96a147433cb1b09bec211.tar.gz
Add support for the modified SGC key format used in IIS.
Diffstat (limited to 'apps/rsa.c')
-rw-r--r--apps/rsa.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/apps/rsa.c b/apps/rsa.c
index 1269f65703..fc8fa54941 100644
--- a/apps/rsa.c
+++ b/apps/rsa.c
@@ -92,7 +92,7 @@ int MAIN(int argc, char **argv)
{
int ret=1;
RSA *rsa=NULL;
- int i,badops=0;
+ int i,badops=0, sgckey=0;
const EVP_CIPHER *enc=NULL;
BIO *in=NULL,*out=NULL;
int informat,outformat,text=0,check=0,noout=0;
@@ -148,6 +148,8 @@ int MAIN(int argc, char **argv)
if (--argc < 1) goto bad;
passargout= *(++argv);
}
+ else if (strcmp(*argv,"-sgckey") == 0)
+ sgckey=1;
else if (strcmp(*argv,"-pubin") == 0)
pubin=1;
else if (strcmp(*argv,"-pubout") == 0)
@@ -178,6 +180,7 @@ bad:
BIO_printf(bio_err," -inform arg input format - one of DER NET PEM\n");
BIO_printf(bio_err," -outform arg output format - one of DER NET PEM\n");
BIO_printf(bio_err," -in arg input file\n");
+ BIO_printf(bio_err," -sgckey Use IIS SGC key format\n");
BIO_printf(bio_err," -passin arg input file pass phrase source\n");
BIO_printf(bio_err," -out arg output file\n");
BIO_printf(bio_err," -passout arg output file pass phrase source\n");
@@ -254,7 +257,7 @@ bad:
}
}
p=(unsigned char *)buf->data;
- rsa=d2i_Netscape_RSA(NULL,&p,(long)size,NULL);
+ rsa=d2i_RSA_NET(NULL,&p,(long)size,NULL, sgckey);
BUF_MEM_free(buf);
}
#endif
@@ -344,14 +347,14 @@ bad:
int size;
i=1;
- size=i2d_Netscape_RSA(rsa,NULL,NULL);
+ size=i2d_RSA_NET(rsa,NULL,NULL, sgckey);
if ((p=(unsigned char *)OPENSSL_malloc(size)) == NULL)
{
BIO_printf(bio_err,"Memory allocation failure\n");
goto end;
}
pp=p;
- i2d_Netscape_RSA(rsa,&p,NULL);
+ i2d_RSA_NET(rsa,&p,NULL, sgckey);
BIO_write(out,(char *)pp,size);
OPENSSL_free(pp);
}