"known in advance" public key authentication?
Nikos Mavrogiannopoulos
nmav at gnutls.org
Tue Nov 13 10:40:17 CET 2012
On Sun, Nov 11, 2012 at 3:59 PM, Ivan Shmakov <oneingray at gmail.com> wrote:
> > Currently you cannot avoid using a container for the public keys,
> > either X.509 or Openpgp.
> Do I understand it correctly that it's a requirement of the TLS
> protocol itself?
Yes.
> As for the implementation, gnutls_certificate_set_x509_key ()
> assumes that at least one certificate is available, and, AIUI,
> GnuTLS will try to find the “best” matching certificate
> associated with the credentials sometime later (during
> handshake?)
Best matching means that it matches the algorithms requested by the
peer. Typically RSA certificates work with everyone.
> I guess, it'd be something along the lines of:
> gnutls_x509_crt_t crt;
> {
> /* craft a dummy certificate */
> int ra
> = gnutls_x509_crt_init (&crt);
> assert (ra == 0);
> int rb
> = gnutls_x509_crt_set_key (crt, priv);
> assert (rb == 0);
> /* NB: doesn't accept empty strings */
> int rc
> = gnutls_x509_crt_set_dn_by_oid (crt, GNUTLS_OID_X520_COMMON_NAME,
You'll have to sign it using gnutls_x509_crt_privkey_sign(). It is
better the check the certtool source for other possible options.
regards,
Nikos
More information about the Gnutls-help
mailing list