mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2025-08-03 12:44:45 +02:00
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