Path: blob/main/contrib/bearssl/src/x509/x509_minimal_full.c
39536 views
/*1* Copyright (c) 2016 Thomas Pornin <[email protected]>2*3* Permission is hereby granted, free of charge, to any person obtaining4* a copy of this software and associated documentation files (the5* "Software"), to deal in the Software without restriction, including6* without limitation the rights to use, copy, modify, merge, publish,7* distribute, sublicense, and/or sell copies of the Software, and to8* permit persons to whom the Software is furnished to do so, subject to9* the following conditions:10*11* The above copyright notice and this permission notice shall be12* included in all copies or substantial portions of the Software.13*14* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,15* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF16* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND17* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS18* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN19* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN20* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE21* SOFTWARE.22*/2324#include "inner.h"2526/* see bearssl_x509.h */27void28br_x509_minimal_init_full(br_x509_minimal_context *xc,29const br_x509_trust_anchor *trust_anchors, size_t trust_anchors_num)30{31/*32* All hash functions are activated.33* Note: the X.509 validation engine will nonetheless refuse to34* validate signatures that use MD5 as hash function.35*/36static const br_hash_class *hashes[] = {37&br_md5_vtable,38&br_sha1_vtable,39&br_sha224_vtable,40&br_sha256_vtable,41&br_sha384_vtable,42&br_sha512_vtable43};4445int id;4647br_x509_minimal_init(xc, &br_sha256_vtable,48trust_anchors, trust_anchors_num);49br_x509_minimal_set_rsa(xc, &br_rsa_i31_pkcs1_vrfy);50br_x509_minimal_set_ecdsa(xc,51&br_ec_prime_i31, &br_ecdsa_i31_vrfy_asn1);52for (id = br_md5_ID; id <= br_sha512_ID; id ++) {53const br_hash_class *hc;5455hc = hashes[id - 1];56br_x509_minimal_set_hash(xc, id, hc);57}58}596061