forked from wolfSSL/wolfssl
In test: Cert req now signed by correct key. Removed loading of CA key.
This commit is contained in:
@ -3045,76 +3045,60 @@ int rsa_test(void)
|
|||||||
#endif /* HAVE_NTRU */
|
#endif /* HAVE_NTRU */
|
||||||
#ifdef CYASSL_CERT_REQ
|
#ifdef CYASSL_CERT_REQ
|
||||||
{
|
{
|
||||||
RsaKey caKey;
|
Cert req;
|
||||||
Cert myCert;
|
byte* der;
|
||||||
byte* derCert;
|
|
||||||
byte* pem;
|
byte* pem;
|
||||||
FILE* ioFile;
|
int derSz;
|
||||||
int certSz;
|
|
||||||
int pemSz;
|
int pemSz;
|
||||||
word32 idx3 = 0;
|
FILE* reqFile;
|
||||||
|
|
||||||
derCert = (byte*)malloc(FOURK_BUF);
|
der = (byte*)malloc(FOURK_BUF);
|
||||||
if (derCert == NULL)
|
if (der == NULL)
|
||||||
return -463;
|
return -463;
|
||||||
pem = (byte*)malloc(FOURK_BUF);
|
pem = (byte*)malloc(FOURK_BUF);
|
||||||
if (pem == NULL)
|
if (pem == NULL)
|
||||||
return -464;
|
return -464;
|
||||||
|
|
||||||
ioFile = fopen(caKeyFile, "rb");
|
InitCert(&req);
|
||||||
|
|
||||||
if (!ioFile)
|
req.version = 0;
|
||||||
|
strncpy(req.subject.country, "US", CTC_NAME_SIZE);
|
||||||
|
strncpy(req.subject.state, "OR", CTC_NAME_SIZE);
|
||||||
|
strncpy(req.subject.locality, "Portland", CTC_NAME_SIZE);
|
||||||
|
strncpy(req.subject.org, "yaSSL", CTC_NAME_SIZE);
|
||||||
|
strncpy(req.subject.unit, "Development", CTC_NAME_SIZE);
|
||||||
|
strncpy(req.subject.commonName, "www.yassl.com", CTC_NAME_SIZE);
|
||||||
|
strncpy(req.subject.email, "info@yassl.com", CTC_NAME_SIZE);
|
||||||
|
req.sigType = CTC_SHA256wRSA;
|
||||||
|
|
||||||
|
derSz = MakeCertReq(&req, der, FOURK_BUF, &key, NULL);
|
||||||
|
if (derSz < 0)
|
||||||
return -465;
|
return -465;
|
||||||
|
|
||||||
pemSz = (int)fread(pem, 1, FOURK_BUF, ioFile);
|
derSz = SignCert(req.bodySz, req.sigType, der, FOURK_BUF,
|
||||||
fclose(ioFile);
|
&key, NULL, &rng);
|
||||||
|
if (derSz < 0)
|
||||||
InitRsaKey(&caKey, 0);
|
|
||||||
ret = RsaPrivateKeyDecode(pem, &idx3, &caKey, (word32)pemSz);
|
|
||||||
if (ret != 0)
|
|
||||||
return -466;
|
return -466;
|
||||||
|
|
||||||
InitCert(&myCert);
|
pemSz = DerToPem(der, derSz, pem, FOURK_BUF, CERTREQ_TYPE);
|
||||||
|
if (pemSz < 0)
|
||||||
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;
|
return -467;
|
||||||
|
|
||||||
certSz = SignCert(myCert.bodySz, myCert.sigType, derCert, FOURK_BUF,
|
reqFile = fopen("./certreq.der", "wb");
|
||||||
&caKey, NULL, &rng);
|
if (!reqFile)
|
||||||
if (certSz < 0)
|
|
||||||
return -468;
|
return -468;
|
||||||
|
|
||||||
ioFile = fopen("./certreq.der", "wb");
|
ret = (int)fwrite(der, derSz, 1, reqFile);
|
||||||
if (!ioFile)
|
fclose(reqFile);
|
||||||
|
|
||||||
|
reqFile = fopen("./certreq.pem", "wb");
|
||||||
|
if (!reqFile)
|
||||||
return -469;
|
return -469;
|
||||||
|
ret = (int)fwrite(pem, pemSz, 1, reqFile);
|
||||||
ret = (int)fwrite(derCert, certSz, 1, ioFile);
|
fclose(reqFile);
|
||||||
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(pem);
|
||||||
free(derCert);
|
free(der);
|
||||||
FreeRsaKey(&caKey);
|
|
||||||
}
|
}
|
||||||
#endif /* CYASSL_CERT_REQ */
|
#endif /* CYASSL_CERT_REQ */
|
||||||
#endif /* CYASSL_CERT_GEN */
|
#endif /* CYASSL_CERT_GEN */
|
||||||
|
Reference in New Issue
Block a user