6. Trusted CA Indication (可信 CA 指示)
受内存限制的 client 可能只保存少量 CA root key. trusted_ca_keys extension 允许 client 向 server 指示其拥有哪些 CA root key, 以减少因 server 选择不合适 certificate chain 而导致的 handshake failure.
Client MAY 在 extended client hello 中包含 trusted_ca_keys extension. extension_data MUST 包含 TrustedAuthorities:
struct {
TrustedAuthority trusted_authorities_list<0..2^16-1>;
} TrustedAuthorities;
enum {
pre_agreed(0), key_sha1_hash(1),
x509_name(2), cert_sha1_hash(3), (255)
} IdentifierType;
CA root key 可通过 pre_agreed, key_sha1_hash, x509_name 或 cert_sha1_hash 标识. Client 可以列出零个, 部分或全部已拥有的 CA root key.
Server 收到该 extension 后 MAY 使用其中信息选择返回给 client 的 certificate. 如果 server 使用该信息, server MUST 在 extended server hello 中包含空 trusted_ca_keys extension.