forked from wolfSSL/wolfssl
Cert Request
1. Added setting the request's version. 2. Added certreq test code to the ctaocrypt test. 3. Added the certreq test outputs to gitignore.
This commit is contained in:
2
.gitignore
vendored
2
.gitignore
vendored
@@ -52,6 +52,8 @@ othercert.der
|
|||||||
othercert.pem
|
othercert.pem
|
||||||
key.der
|
key.der
|
||||||
key.pem
|
key.pem
|
||||||
|
certreq.der
|
||||||
|
certreq.pem
|
||||||
diff
|
diff
|
||||||
sslSniffer/sslSnifferTest/tracefile.txt
|
sslSniffer/sslSnifferTest/tracefile.txt
|
||||||
*.gz
|
*.gz
|
||||||
|
@@ -4625,7 +4625,7 @@ static int EncodeCertReq(Cert* cert, DerCert* der,
|
|||||||
XMEMSET(der, 0, sizeof(DerCert));
|
XMEMSET(der, 0, sizeof(DerCert));
|
||||||
|
|
||||||
/* version */
|
/* version */
|
||||||
der->versionSz = SetMyVersion(0, der->version, FALSE);
|
der->versionSz = SetMyVersion(cert->version, der->version, FALSE);
|
||||||
|
|
||||||
/* subject name */
|
/* subject name */
|
||||||
der->subjectSz = SetName(der->subject, &cert->subject);
|
der->subjectSz = SetName(der->subject, &cert->subject);
|
||||||
|
@@ -3043,6 +3043,80 @@ int rsa_test(void)
|
|||||||
FreeRsaKey(&caKey);
|
FreeRsaKey(&caKey);
|
||||||
}
|
}
|
||||||
#endif /* HAVE_NTRU */
|
#endif /* HAVE_NTRU */
|
||||||
|
#ifdef CYASSL_CERT_REQ
|
||||||
|
{
|
||||||
|
RsaKey caKey;
|
||||||
|
Cert myCert;
|
||||||
|
byte* derCert;
|
||||||
|
byte* pem;
|
||||||
|
FILE* ioFile;
|
||||||
|
int certSz;
|
||||||
|
int pemSz;
|
||||||
|
word32 idx3 = 0;
|
||||||
|
|
||||||
|
derCert = (byte*)malloc(FOURK_BUF);
|
||||||
|
if (derCert == NULL)
|
||||||
|
return -463;
|
||||||
|
pem = (byte*)malloc(FOURK_BUF);
|
||||||
|
if (pem == NULL)
|
||||||
|
return -464;
|
||||||
|
|
||||||
|
ioFile = fopen(caKeyFile, "rb");
|
||||||
|
|
||||||
|
if (!ioFile)
|
||||||
|
return -465;
|
||||||
|
|
||||||
|
pemSz = (int)fread(pem, 1, FOURK_BUF, ioFile);
|
||||||
|
fclose(ioFile);
|
||||||
|
|
||||||
|
InitRsaKey(&caKey, 0);
|
||||||
|
ret = RsaPrivateKeyDecode(pem, &idx3, &caKey, (word32)pemSz);
|
||||||
|
if (ret != 0)
|
||||||
|
return -466;
|
||||||
|
|
||||||
|
InitCert(&myCert);
|
||||||
|
|
||||||
|
myCert.version = 0;
|
||||||
|
strncpy(myCert.subject.country, "US", CTC_NAME_SIZE);
|
||||||
|
strncpy(myCert.subject.state, "OR", CTC_NAME_SIZE);
|
||||||
|
strncpy(myCert.subject.locality, "Portland", CTC_NAME_SIZE);
|
||||||
|
strncpy(myCert.subject.org, "yaSSL", CTC_NAME_SIZE);
|
||||||
|
strncpy(myCert.subject.unit, "Development", CTC_NAME_SIZE);
|
||||||
|
strncpy(myCert.subject.commonName, "www.yassl.com", CTC_NAME_SIZE);
|
||||||
|
strncpy(myCert.subject.email, "info@yassl.com", CTC_NAME_SIZE);
|
||||||
|
myCert.sigType = CTC_SHA256wRSA;
|
||||||
|
|
||||||
|
certSz = MakeCertReq(&myCert, derCert, FOURK_BUF, &key, NULL);
|
||||||
|
if (certSz < 0)
|
||||||
|
return -467;
|
||||||
|
|
||||||
|
certSz = SignCert(myCert.bodySz, myCert.sigType, derCert, FOURK_BUF,
|
||||||
|
&caKey, NULL, &rng);
|
||||||
|
if (certSz < 0)
|
||||||
|
return -468;
|
||||||
|
|
||||||
|
ioFile = fopen("./certreq.der", "wb");
|
||||||
|
if (!ioFile)
|
||||||
|
return -469;
|
||||||
|
|
||||||
|
ret = (int)fwrite(derCert, certSz, 1, ioFile);
|
||||||
|
fclose(ioFile);
|
||||||
|
|
||||||
|
pemSz = DerToPem(derCert, certSz, pem, FOURK_BUF, CERTREQ_TYPE);
|
||||||
|
if (pemSz < 0)
|
||||||
|
return -470;
|
||||||
|
|
||||||
|
ioFile = fopen("./certreq.pem", "wb");
|
||||||
|
if (!ioFile)
|
||||||
|
return -471;
|
||||||
|
ret = (int)fwrite(pem, pemSz, 1, ioFile);
|
||||||
|
fclose(ioFile);
|
||||||
|
|
||||||
|
free(pem);
|
||||||
|
free(derCert);
|
||||||
|
FreeRsaKey(&caKey);
|
||||||
|
}
|
||||||
|
#endif /* CYASSL_CERT_REQ */
|
||||||
#endif /* CYASSL_CERT_GEN */
|
#endif /* CYASSL_CERT_GEN */
|
||||||
|
|
||||||
FreeRsaKey(&key);
|
FreeRsaKey(&key);
|
||||||
|
Reference in New Issue
Block a user