def load_certificate(self, value):
if isinstance(value, Message):<EOL><INDENT>constructor = "<STR_LIT>"<EOL><DEDENT>elif os.path.isfile(value):<EOL><INDENT>constructor = "<STR_LIT>"<EOL><DEDENT>else:<EOL><INDENT>constructor = "<STR_LIT>"<EOL><DEDENT>blob = getattr(PublicBlob, constructor)(value)<EOL>if not blob.key_type.startswith(self.get_name()):<EOL><INDENT>err = "<STR_LIT>"<EOL>raise ValueError(err.format(blob.key_type, self.get_name()))<EOL><DEDENT>self.public_blob = blob<EOL>
Supplement the private key contents with data loaded from an OpenSSH
public key (``.pub``) or certificate (``-cert.pub``) file, a string
containing such a file, or a `.Message` object.

The .pub contents adds no real value, since the private key
file includes sufficient information to derive the public
key info. For certificates, however, this can be used on
the client side to offer authentication requests to the server
based on certificate instead of raw public key.

See:
https://github.com/openssh/openssh-portable/blob/master/PROTOCOL.certkeys

Note: very little effort is made to validate the certificate contents,
that is for the server to decide if it is good enough to authenticate
successfully.