target = "https://tools.ietf.org/rfc/rfc4492#section-5.6"

# 5.6.  Client Certificate
#
# When this message is sent:
# 
# This message is sent in response to a CertificateRequest when a
# client has a suitable certificate and has decided to proceed with
# client authentication.  (Note that if the server has used a Supported
# Point Formats Extension, a certificate can only be considered
# suitable for use with the ECDSA_sign, RSA_fixed_ECDH, and
# ECDSA_fixed_ECDH authentication methods if the public key point
# specified in it respects the server's choice of point formats.  If no
# Supported Point Formats Extension has been used, a certificate can
# only be considered suitable for use with these authentication methods
# if the point is represented in uncompressed point format.)
# 
# Meaning of this message:
# 
# This message is used to authentically convey the client's static
# public key to the server.  The following table summarizes what client
# certificate types are appropriate for the ECC-based client
# authentication mechanisms described in Section 3.  ECC public keys
# must be encoded in certificates as described in Section 5.9.
# 
# NOTE: The client's Certificate message is capable of carrying a chain
# of certificates.  The restrictions mentioned in Table 4 apply only to
# the client's certificate (first in the chain).
# 
#        Client
#        Authentication Method   Client Certificate Type
#        ---------------------   -----------------------
# 
#        ECDSA_sign              Certificate MUST contain an
#                                ECDSA-capable public key and
#                                be signed with ECDSA.
# 
#        ECDSA_fixed_ECDH        Certificate MUST contain an
#                                ECDH-capable public key on the
#                                same elliptic curve as the server's
#                                long-term ECDH key.  This certificate
#                                MUST be signed with ECDSA.
# 
#        RSA_fixed_ECDH          Certificate MUST contain an
#                                ECDH-capable public key on the
#                                same elliptic curve as the server's
#                                long-term ECDH key.  This certificate
#                                MUST be signed with RSA.
# 
#                   Table 4: Client Certificate Types
# 
# Structure of this message:
# 
# Identical to the TLS client Certificate format.
# 
# Actions of the sender:
# 
# The client constructs an appropriate certificate chain, and conveys
# it to the server in the Certificate message.
# 
# Actions of the receiver:
# 
# The TLS server validates the certificate chain, extracts the client's
# public key, and checks that the key type is appropriate for the
# client authentication method.

[[spec]]
level = "MUST"
quote = '''
ECDSA_sign              Certificate MUST contain an
ECDSA-capable public key and
be signed with ECDSA.
'''

[[spec]]
level = "MUST"
quote = '''
ECDSA_fixed_ECDH        Certificate MUST contain an
ECDH-capable public key on the
same elliptic curve as the server's
long-term ECDH key.
'''

[[spec]]
level = "MUST"
quote = '''
This certificate
MUST be signed with ECDSA.
'''

[[spec]]
level = "MUST"
quote = '''
RSA_fixed_ECDH          Certificate MUST contain an
ECDH-capable public key on the
same elliptic curve as the server's
long-term ECDH key.
'''

[[spec]]
level = "MUST"
quote = '''
This certificate
MUST be signed with RSA.
'''

