Lines Matching refs:cert
67 struct KeyCert *cert; in cert_new() local
69 cert = xcalloc(1, sizeof(*cert)); in cert_new()
70 buffer_init(&cert->certblob); in cert_new()
71 buffer_init(&cert->critical); in cert_new()
72 buffer_init(&cert->extensions); in cert_new()
73 cert->key_id = NULL; in cert_new()
74 cert->principals = NULL; in cert_new()
75 cert->signature_key = NULL; in cert_new()
76 return cert; in cert_new()
91 k->cert = NULL; in key_new()
140 k->cert = cert_new(); in key_new()
197 cert_free(struct KeyCert *cert) in cert_free() argument
201 buffer_free(&cert->certblob); in cert_free()
202 buffer_free(&cert->critical); in cert_free()
203 buffer_free(&cert->extensions); in cert_free()
204 free(cert->key_id); in cert_free()
205 for (i = 0; i < cert->nprincipals; i++) in cert_free()
206 free(cert->principals[i]); in cert_free()
207 free(cert->principals); in cert_free()
208 if (cert->signature_key != NULL) in cert_free()
209 key_free(cert->signature_key); in cert_free()
210 free(cert); in cert_free()
262 if (k->cert != NULL) in key_free()
263 cert_free(k->cert); in key_free()
264 k->cert = NULL; in key_free()
352 if (!cert_compare(a->cert, b->cert)) in key_equal()
803 if (ret->cert != NULL) in key_read()
804 cert_free(ret->cert); in key_read()
805 ret->cert = k->cert; in key_read()
806 k->cert = NULL; in key_read()
875 if (key->cert == NULL) { in key_write()
879 if (buffer_len(&key->cert->certblob) == 0) { in key_write()
941 switch (k->cert->type) { in key_cert_type()
956 int cert; member
1036 (!kt->cert && strcasecmp(kt->shortname, name) == 0)) in key_type_from_name()
1068 if ((certs_only && !kt->cert) || (plain_only && kt->cert)) in key_alg_list()
1087 return kt->cert; in key_type_is_cert()
1288 if (to_key->cert != NULL) { in key_cert_copy()
1289 cert_free(to_key->cert); in key_cert_copy()
1290 to_key->cert = NULL; in key_cert_copy()
1293 if ((from = from_key->cert) == NULL) in key_cert_copy()
1296 to = to_key->cert = cert_new(); in key_cert_copy()
1415 buffer_append(&key->cert->certblob, blob, blen); in cert_parse()
1419 if ((!v00 && buffer_get_int64_ret(&key->cert->serial, b) != 0) || in cert_parse()
1420 buffer_get_int_ret(&key->cert->type, b) != 0 || in cert_parse()
1421 (key->cert->key_id = buffer_get_cstring_ret(b, &kidlen)) == NULL || in cert_parse()
1423 buffer_get_int64_ret(&key->cert->valid_after, b) != 0 || in cert_parse()
1424 buffer_get_int64_ret(&key->cert->valid_before, b) != 0 || in cert_parse()
1435 signed_len = buffer_len(&key->cert->certblob) - buffer_len(b); in cert_parse()
1442 if (key->cert->type != SSH2_CERT_TYPE_USER && in cert_parse()
1443 key->cert->type != SSH2_CERT_TYPE_HOST) { in cert_parse()
1444 error("Unknown certificate type %u", key->cert->type); in cert_parse()
1450 if (key->cert->nprincipals >= CERT_MAX_PRINCIPALS) { in cert_parse()
1458 key->cert->principals = xrealloc(key->cert->principals, in cert_parse()
1459 key->cert->nprincipals + 1, sizeof(*key->cert->principals)); in cert_parse()
1460 key->cert->principals[key->cert->nprincipals++] = principal; in cert_parse()
1465 buffer_append(&key->cert->critical, critical, clen); in cert_parse()
1477 buffer_append(&key->cert->extensions, exts, elen); in cert_parse()
1489 if ((key->cert->signature_key = key_from_blob2(sig_key, sklen, 0)) in cert_parse()
1494 if (!key_type_is_valid_ca(key->cert->signature_key->type)) { in cert_parse()
1496 key_type(key->cert->signature_key), in cert_parse()
1497 key->cert->signature_key->type); in cert_parse()
1501 switch (key_verify(key->cert->signature_key, sig, slen, in cert_parse()
1502 buffer_ptr(&key->cert->certblob), signed_len)) { in cert_parse()
1704 buffer_append(&b, buffer_ptr(&key->cert->certblob), in to_blob()
1705 buffer_len(&key->cert->certblob)); in to_blob()
1932 k->cert = cert_new(); in key_to_certified()
1936 k->cert = cert_new(); in key_to_certified()
1943 k->cert = cert_new(); in key_to_certified()
1950 k->cert = cert_new(); in key_to_certified()
1967 cert_free(k->cert); in key_drop_cert()
1968 k->cert = NULL; in key_drop_cert()
1981 if (k->cert == NULL) { in key_certify()
1988 k->cert->type); in key_certify()
2000 buffer_clear(&k->cert->certblob); in key_certify()
2001 buffer_put_cstring(&k->cert->certblob, key_ssh_name(k)); in key_certify()
2006 buffer_put_string(&k->cert->certblob, nonce, sizeof(nonce)); in key_certify()
2012 buffer_put_bignum2(&k->cert->certblob, k->dsa->p); in key_certify()
2013 buffer_put_bignum2(&k->cert->certblob, k->dsa->q); in key_certify()
2014 buffer_put_bignum2(&k->cert->certblob, k->dsa->g); in key_certify()
2015 buffer_put_bignum2(&k->cert->certblob, k->dsa->pub_key); in key_certify()
2019 buffer_put_cstring(&k->cert->certblob, in key_certify()
2021 buffer_put_ecpoint(&k->cert->certblob, in key_certify()
2028 buffer_put_bignum2(&k->cert->certblob, k->rsa->e); in key_certify()
2029 buffer_put_bignum2(&k->cert->certblob, k->rsa->n); in key_certify()
2032 buffer_put_string(&k->cert->certblob, in key_certify()
2037 buffer_clear(&k->cert->certblob); in key_certify()
2044 buffer_put_int64(&k->cert->certblob, k->cert->serial); in key_certify()
2046 buffer_put_int(&k->cert->certblob, k->cert->type); in key_certify()
2047 buffer_put_cstring(&k->cert->certblob, k->cert->key_id); in key_certify()
2050 for (i = 0; i < k->cert->nprincipals; i++) in key_certify()
2051 buffer_put_cstring(&principals, k->cert->principals[i]); in key_certify()
2052 buffer_put_string(&k->cert->certblob, buffer_ptr(&principals), in key_certify()
2056 buffer_put_int64(&k->cert->certblob, k->cert->valid_after); in key_certify()
2057 buffer_put_int64(&k->cert->certblob, k->cert->valid_before); in key_certify()
2058 buffer_put_string(&k->cert->certblob, in key_certify()
2059 buffer_ptr(&k->cert->critical), buffer_len(&k->cert->critical)); in key_certify()
2063 buffer_put_string(&k->cert->certblob, in key_certify()
2064 buffer_ptr(&k->cert->extensions), in key_certify()
2065 buffer_len(&k->cert->extensions)); in key_certify()
2070 buffer_put_string(&k->cert->certblob, nonce, sizeof(nonce)); in key_certify()
2072 buffer_put_string(&k->cert->certblob, NULL, 0); /* reserved */ in key_certify()
2073 buffer_put_string(&k->cert->certblob, ca_blob, ca_len); in key_certify()
2077 if (key_sign(ca, &sig_blob, &sig_len, buffer_ptr(&k->cert->certblob), in key_certify()
2078 buffer_len(&k->cert->certblob)) != 0) { in key_certify()
2080 buffer_clear(&k->cert->certblob); in key_certify()
2084 buffer_put_string(&k->cert->certblob, sig_blob, sig_len); in key_certify()
2098 if (k->cert->type != SSH2_CERT_TYPE_HOST) { in key_cert_check_authority()
2103 if (k->cert->type != SSH2_CERT_TYPE_USER) { in key_cert_check_authority()
2113 if ((u_int64_t)now < k->cert->valid_after) { in key_cert_check_authority()
2117 if ((u_int64_t)now >= k->cert->valid_before) { in key_cert_check_authority()
2121 if (k->cert->nprincipals == 0) { in key_cert_check_authority()
2128 for (i = 0; i < k->cert->nprincipals; i++) { in key_cert_check_authority()
2129 if (strcmp(name, k->cert->principals[i]) == 0) { in key_cert_check_authority()
2413 if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0) in key_private_serialize()
2415 buffer_put_string(b, buffer_ptr(&key->cert->certblob), in key_private_serialize()
2416 buffer_len(&key->cert->certblob)); in key_private_serialize()
2431 if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0) in key_private_serialize()
2433 buffer_put_string(b, buffer_ptr(&key->cert->certblob), in key_private_serialize()
2434 buffer_len(&key->cert->certblob)); in key_private_serialize()
2445 if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0) in key_private_serialize()
2447 buffer_put_string(b, buffer_ptr(&key->cert->certblob), in key_private_serialize()
2448 buffer_len(&key->cert->certblob)); in key_private_serialize()
2457 if (key->cert == NULL || buffer_len(&key->cert->certblob) == 0) in key_private_serialize()
2459 buffer_put_string(b, buffer_ptr(&key->cert->certblob), in key_private_serialize()
2460 buffer_len(&key->cert->certblob)); in key_private_serialize()
2472 u_char *cert; in key_private_deserialize() local
2494 cert = buffer_get_string(blob, &len); in key_private_deserialize()
2495 if ((k = key_from_blob(cert, len)) == NULL) in key_private_deserialize()
2497 free(cert); in key_private_deserialize()
2536 cert = buffer_get_string(blob, &len); in key_private_deserialize()
2537 if ((k = key_from_blob(cert, len)) == NULL) in key_private_deserialize()
2539 free(cert); in key_private_deserialize()
2568 cert = buffer_get_string(blob, &len); in key_private_deserialize()
2569 if ((k = key_from_blob(cert, len)) == NULL) in key_private_deserialize()
2571 free(cert); in key_private_deserialize()
2590 cert = buffer_get_string(blob, &len); in key_private_deserialize()
2591 if ((k = key_from_blob(cert, len)) == NULL) in key_private_deserialize()
2593 free(cert); in key_private_deserialize()