@cindex OpenPGP certificates
Previous versions of GnuTLS supported limited @acronym{OpenPGP} key
-authentication. That functionality has been deprecated and although
-is still made available, it is no longer recommended to use.
-The reason is that, supporting alternative authentication
-methods, when X.509 and PKIX were new and not well established, seemed like a
-good idea, in today's internet X.509 is unquestionably the main
+authentication. That functionality has been deprecated and is no longer
+made available. The reason is that, supporting alternative authentication
+methods, when X.509 and PKIX were new on the Internet and not well established, seemed like a
+good idea, in today's Internet X.509 is unquestionably the main
container for certificates. As such supporting more options with no clear
use-cases, is a distraction that consumes considerable resources for
-improving and testing. For that we have decided to mark this functionality
-as deprecated, and will be dropped in one of the next GnuTLS major releases.
+improving and testing the library. For that we have decided to drop
+this functionality completely in 3.6.0.
@node Advanced certificate verification
Catch all which enables all curves from NORMAL priority is CURVE-ALL.
@item Certificate type @tab
-The options CTYPE-OPENPGP (deprecated), and CTYPE-X509 are available. Catch all is CTYPE-ALL.
+The only option currently is CTYPE-X509. Catch all is CTYPE-ALL.
@end multitable
@caption{The supported algorithm keywords in priority strings.}
@itemize
-@item Certificate authentication: Authenticated key exchange using public key infrastructure and certificates (X.509 or OpenPGP).
+@item Certificate authentication: Authenticated key exchange using public key infrastructure and X.509 certificates.
@item @acronym{SRP} authentication: Authenticated key exchange using a password.
@item @acronym{PSK} authentication: Authenticated key exchange using a pre-shared key.
@item Anonymous authentication: Key exchange without peer authentication.
@item Support for Datagram TLS 1.0 and 1.2.
-@item Support for handling and verification of @acronym{X.509} and @acronym{OpenPGP} certificates.
+@item Support for handling and verification of @acronym{X.509} certificates.
@item Support for password authentication using @acronym{TLS-SRP}.
--disable-srp-authentication
--disable-psk-authentication
--disable-anon-authentication
---disable-openpgp-authentication
--disable-dhe
--disable-ecdhe
--disable-openssl-compatibility
In GnuTLS the approach is to handle all keys transparently by the high level API, e.g.,
the API that loads a key or certificate from a file.
The high-level API will accept URIs in addition to files that specify keys on an HSM or in TPM,
-and a callback function will be used to obtain any required keys. The URI format is defined in
+and a callback function will be used to obtain any required keys. The URI format is defined in
@xcite{PKCS11URI}.
More information on the API is provided in the next sections. Examples of a URI of a certificate
@cindex abstract types
Since there are many forms of a public or private keys supported by @acronym{GnuTLS} such as
-@acronym{X.509}, @acronym{OpenPGP}, @acronym{PKCS} #11 or TPM it is desirable to allow common operations
+@acronym{X.509}, @acronym{PKCS} #11 or TPM it is desirable to allow common operations
on them. For these reasons the abstract @code{gnutls_privkey_t} and @code{gnutls_pubkey_t} were
introduced in @code{gnutls/@-abstract.h} header. Those types are initialized using a specific type of
key and then can be used to perform operations in an abstract way. For example in order
@showfuncdesc{gnutls_pubkey_export2}
-Other helper functions that allow directly importing from raw X.509 or
-OpenPGP structures are shown below.
+Other helper functions that allow directly importing from raw X.509 structures are shown below.
@showfuncA{gnutls_pubkey_import_x509_raw}
@showfuncB{gnutls_privkey_import_x509,gnutls_privkey_import_pkcs11}
-Other helper functions that allow directly importing from raw X.509 or
-OpenPGP structures are shown below. Again, as with public keys, private keys
+Other helper functions that allow directly importing from raw X.509
+structures are shown below. Again, as with public keys, private keys
can be imported from a hardware module using URLs.
@showfuncdesc{gnutls_privkey_import_url}