mirror of
https://github.com/guanzhi/GmSSL.git
synced 2026-05-06 16:36:16 +08:00
Update X509 cert
This commit is contained in:
@@ -607,6 +607,34 @@ static int test_asn1_time(void)
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int test_asn1_time_limits(void)
|
||||
{
|
||||
char *tests[] = {
|
||||
"20491231235959Z",
|
||||
"20500101000000Z",
|
||||
"99991231235959Z",
|
||||
};
|
||||
size_t i;
|
||||
|
||||
time_t tv[sizeof(tests)/sizeof(tests[0])];
|
||||
char str[16] = {0};
|
||||
|
||||
for (i = 0; i < sizeof(tests)/sizeof(tests[0]); i++) {
|
||||
if (asn1_time_from_str(0, &tv[i], tests[i]) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
fprintf(stderr, " %s: %lld\n", tests[i], (long long)tv[i]);
|
||||
}
|
||||
if (tv[0] + 1 != tv[1]) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
|
||||
printf("%s() ok\n", __FUNCTION__);
|
||||
return 1;
|
||||
}
|
||||
|
||||
static int test_asn1_utc_time(void)
|
||||
{
|
||||
time_t tests[] = {
|
||||
@@ -790,6 +818,7 @@ int main(void)
|
||||
if (test_asn1_utf8_string() != 1) goto err;
|
||||
if (test_asn1_ia5_string() != 1) goto err;
|
||||
if (test_asn1_time() != 1) goto err;
|
||||
if (test_asn1_time_limits() != 1) goto err;
|
||||
if (test_asn1_utc_time() != 1) goto err;
|
||||
if (test_asn1_generalized_time() != 1) goto err;
|
||||
if (test_asn1_from_der_null_args() != 1) goto err;
|
||||
|
||||
@@ -372,7 +372,8 @@ static int test_cms_signer_info_sign(void)
|
||||
size_t namelen;
|
||||
time_t not_before, not_after;
|
||||
uint8_t certs[1024];
|
||||
size_t certslen;
|
||||
size_t certslen = 0;
|
||||
uint8_t *pcerts = certs;
|
||||
|
||||
SM3_CTX sm3_ctx;
|
||||
|
||||
@@ -389,14 +390,15 @@ static int test_cms_signer_info_sign(void)
|
||||
|| x509_name_set(name, &namelen, sizeof(name), "CN", "Beijing", "Haidian", "PKU", "CS", "Alice") != 1
|
||||
|| time(¬_before) == -1
|
||||
|| x509_validity_add_days(¬_after, not_before, 365) != 1
|
||||
|| x509_cert_sign(certs, &certslen, sizeof(certs),
|
||||
|| x509_cert_sign_to_der(
|
||||
X509_version_v3, serial_buf, sizeof(serial_buf),
|
||||
OID_sm2sign_with_sm3,
|
||||
name, namelen,
|
||||
not_before, not_after,
|
||||
name, namelen,
|
||||
&sm2_key, NULL, 0, NULL, 0, NULL, 0,
|
||||
&sm2_key, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH) != 1) {
|
||||
&sm2_key, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH,
|
||||
&pcerts, &certslen) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
@@ -571,8 +573,7 @@ static int test_cms_signed_data(void)
|
||||
time(¬_before);
|
||||
x509_validity_add_days(¬_after, not_before, 365);
|
||||
|
||||
if (x509_cert_sign(
|
||||
cert, &certlen, sizeof(cert),
|
||||
if (x509_cert_sign_to_der(
|
||||
X509_version_v3,
|
||||
serial, sizeof(serial),
|
||||
OID_sm2sign_with_sm3,
|
||||
@@ -583,7 +584,8 @@ static int test_cms_signed_data(void)
|
||||
NULL, 0,
|
||||
NULL, 0,
|
||||
NULL, 0,
|
||||
&sm2_key, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH) != 1) {
|
||||
&sm2_key, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH,
|
||||
&p, &certlen) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
@@ -775,13 +777,11 @@ int test_cms_enveloped_data(void)
|
||||
|
||||
p = certs;
|
||||
certslen = 0;
|
||||
maxlen = sizeof(certs);
|
||||
|
||||
if (sm2_key_generate(&sm2_key1) != 1
|
||||
|| rand_bytes(serial1, sizeof(serial1)) != 1
|
||||
|| x509_name_set(name1, &name1_len, sizeof(name1), "CN", "Beijing", "Haidian", "PKU", "CS", "Alice") != 1
|
||||
|| x509_cert_sign(
|
||||
p, &len, maxlen,
|
||||
|| x509_cert_sign_to_der(
|
||||
X509_version_v3,
|
||||
serial1, sizeof(serial1),
|
||||
OID_sm2sign_with_sm3,
|
||||
@@ -789,19 +789,16 @@ int test_cms_enveloped_data(void)
|
||||
not_before, not_after,
|
||||
name1, name1_len,
|
||||
&sm2_key1, NULL, 0, NULL, 0, NULL, 0,
|
||||
&sm2_key1, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH) != 1) {
|
||||
&sm2_key1, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH,
|
||||
&p, &certslen) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
p += len;
|
||||
certslen += len;
|
||||
maxlen -= len;
|
||||
|
||||
if (sm2_key_generate(&sm2_key2) != 1
|
||||
|| rand_bytes(serial2, sizeof(serial2)) != 1
|
||||
|| x509_name_set(name2, &name2_len, sizeof(name2), "CN", "Beijing", "Haidian", "PKU", "CS", "Bob") != 1
|
||||
|| x509_cert_sign(
|
||||
p, &len, maxlen,
|
||||
|| x509_cert_sign_to_der(
|
||||
X509_version_v3,
|
||||
serial2, sizeof(serial2),
|
||||
OID_sm2sign_with_sm3,
|
||||
@@ -809,13 +806,11 @@ int test_cms_enveloped_data(void)
|
||||
not_before, not_after,
|
||||
name2, name2_len,
|
||||
&sm2_key2, NULL, 0, NULL, 0, NULL, 0,
|
||||
&sm2_key2, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH) != 1) {
|
||||
&sm2_key2, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH,
|
||||
&p, &certslen) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
p += len;
|
||||
certslen += len;
|
||||
maxlen -= len;
|
||||
|
||||
rand_bytes(key, sizeof(key));
|
||||
rand_bytes(iv, sizeof(iv));
|
||||
@@ -899,7 +894,7 @@ static int test_cms_key_agreement_info(void)
|
||||
uint8_t serial[20];
|
||||
time_t not_before, not_after;
|
||||
uint8_t cert[2048];
|
||||
size_t certlen;
|
||||
size_t certlen = 0;
|
||||
|
||||
uint8_t buf[4096];
|
||||
uint8_t *p;
|
||||
@@ -915,13 +910,13 @@ static int test_cms_key_agreement_info(void)
|
||||
const uint8_t *id;
|
||||
size_t idlen;
|
||||
|
||||
p = cert;
|
||||
if (sm2_key_generate(&sm2_key) != 1
|
||||
|| rand_bytes(serial, sizeof(serial)) != 1
|
||||
|| x509_name_set(name, &namelen, sizeof(name), "CN", "Beijing", "Haidian", "PKU", "CS", "Alice") != 1
|
||||
|| time(¬_before) == - 1
|
||||
|| x509_validity_add_days(¬_after, not_before, 365) != 1
|
||||
|| x509_cert_sign(
|
||||
cert, &certlen, sizeof(cert),
|
||||
|| x509_cert_sign_to_der(
|
||||
X509_version_v3,
|
||||
serial, sizeof(serial),
|
||||
OID_sm2sign_with_sm3,
|
||||
@@ -929,7 +924,8 @@ static int test_cms_key_agreement_info(void)
|
||||
not_before, not_after,
|
||||
name, namelen,
|
||||
&sm2_key, NULL, 0, NULL, 0, NULL, 0,
|
||||
&sm2_key, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH) != 1) {
|
||||
&sm2_key, SM2_DEFAULT_ID, SM2_DEFAULT_ID_LENGTH,
|
||||
&p, &certlen) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -779,7 +779,8 @@ static int test_x509_exts(void)
|
||||
static int test_x509_cert_with_exts(void)
|
||||
{
|
||||
uint8_t cert[1024];
|
||||
size_t certlen;
|
||||
size_t certlen = 0;
|
||||
uint8_t *p = cert;
|
||||
uint8_t serial[20];
|
||||
uint8_t name[256];
|
||||
size_t namelen;
|
||||
@@ -810,8 +811,7 @@ static int test_x509_cert_with_exts(void)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (x509_cert_sign(
|
||||
cert, &certlen, sizeof(cert),
|
||||
if (x509_cert_sign_to_der(
|
||||
X509_version_v3,
|
||||
serial, sizeof(serial),
|
||||
OID_sm2sign_with_sm3,
|
||||
@@ -823,10 +823,16 @@ static int test_x509_cert_with_exts(void)
|
||||
uniq_id, sizeof(uniq_id),
|
||||
exts, extslen,
|
||||
&sm2_key,
|
||||
SM2_DEFAULT_ID, strlen(SM2_DEFAULT_ID)) != 1) {
|
||||
SM2_DEFAULT_ID, strlen(SM2_DEFAULT_ID),
|
||||
&p, &certlen) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
if (certlen > sizeof(cert)) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
|
||||
x509_cert_print(stderr, 0, 0, "Certificate", cert, certlen);
|
||||
|
||||
|
||||
|
||||
@@ -326,8 +326,7 @@ static int test_x509_cert(void)
|
||||
set_x509_name(subject, &subject_len, sizeof(subject));
|
||||
sm2_key_generate(&sm2_key);
|
||||
|
||||
if (x509_cert_sign(
|
||||
cert, &certlen, sizeof(cert),
|
||||
if (x509_cert_sign_to_der(
|
||||
X509_version_v3,
|
||||
serial, sizeof(serial),
|
||||
OID_sm2sign_with_sm3,
|
||||
@@ -338,7 +337,8 @@ static int test_x509_cert(void)
|
||||
NULL, 0,
|
||||
NULL, 0,
|
||||
NULL, 0,
|
||||
&sm2_key, SM2_DEFAULT_ID, strlen(SM2_DEFAULT_ID)) != 1) {
|
||||
&sm2_key, SM2_DEFAULT_ID, strlen(SM2_DEFAULT_ID),
|
||||
&p, &certlen) != 1) {
|
||||
error_print();
|
||||
return -1;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user