structure, by the server (see @ref{Parameter generation}).
@float Table,tab:key-exchange
-@multitable @columnfractions .3 .7
+@multitable @columnfractions .2 .7
@headitem Key exchange @tab Description
J. Altman, N. Williams, L. Zhu, "Channel Bindings for TLS", July 2010,
available from @url{http://www.ietf.org/rfc/rfc5929}.
+@item @anchor{PKCS11URI}[PKCS11URI]
+J. Pechanec, D. Moffat, "The PKCS#11 URI Scheme", August 2011,
+Work in progress, available from @url{http://tools.ietf.org/html/draft-pechanec-pkcs11uri-05}.
+
@item @anchor{ANDERSON}[ANDERSON]
R. J. Anderson, "Security Engineering: A Guide to Building Dependable Distributed Systems",
John Wiley \& Sons, Inc., 2001.
dates and some other fields @xcite{PKIX} as shown in @ref{tab:x509}.
@float Table,tab:x509
-@multitable @columnfractions .3 .7
+@multitable @columnfractions .2 .7
@headitem Field @tab Description
extensions are shown in @ref{tab:x509-ext}.
@float Table,tab:x509-ext
-@multitable @columnfractions .3 .2 .5
+@multitable @columnfractions .3 .2 .4
@headitem Extension @tab OID @tab Description
in a TLS session.
@float Table,tab:cert-verify
-@multitable @columnfractions .55 .45
+@multitable @columnfractions .46 .44
@headitem Flag @tab Description
@code{gnutls_certificate_verify_flags} and are explained in @ref{tab:cert-flags}.
@float Table,tab:cert-flags
-@multitable @columnfractions .5 .5
+@multitable @columnfractions .5 .4
@headitem Flag @tab Description
@item GNUTLS_VERIFY_@-DISABLE_CA_SIGN @tab
the user to insert the token. All the initialization functions are below.
@showfuncdesc{gnutls_pkcs11_init}
+@showfuncA{gnutls_pkcs11_deinit}
+
@showfuncdesc{gnutls_pkcs11_set_token_function}
@showfuncdesc{gnutls_pkcs11_set_pin_function}
@showfuncdesc{gnutls_pkcs11_add_provider}
-@showfuncA{gnutls_pkcs11_deinit}
Note that due to limitations of @acronym{PKCS} #11 there are issues when multiple libraries
are sharing a module. To avoid this problem GnuTLS uses @acronym{p11-kit}
@subsection Reading objects
All @acronym{PKCS} #11 objects are referenced by @acronym{GnuTLS} functions by
-URLs as described in @code{draft-pechanec-pkcs11uri-05}.
+URLs as described in @xcite{PKCS11URI}.
This allows for a consistent naming of objects across systems and applications
in the same system. For example a public
key on a smart card may be referenced as:
@code{GNUTLS_@-PKCS11_OBJ_@-FLAG_@-MARK_@-PRIVATE}, to require PIN to be
entered before accessing the object (for operations or otherwise).
-@showfuncdesc{gnutls_pkcs11_delete_url}
@showfuncdesc{gnutls_pkcs11_copy_x509_privkey}
+
@showfuncdesc{gnutls_pkcs11_copy_x509_crt}
+@showfuncdesc{gnutls_pkcs11_delete_url}
@subsection Using a @acronym{PKCS} #11 token with TLS
@showfuncB{gnutls_pubkey_init,gnutls_pubkey_deinit}
@showfuncdesc{gnutls_pubkey_import_x509}
+
@showfuncdesc{gnutls_pubkey_import_openpgp}
@showfuncdesc{gnutls_pubkey_import_pkcs11}
@showfuncdesc{gnutls_pubkey_import_pkcs11_url}
information over a public key.
@showfuncdesc{gnutls_pubkey_get_pk_algorithm}
+
@showfuncdesc{gnutls_pubkey_get_preferred_hash_algorithm}
@showfuncdesc{gnutls_pubkey_get_key_id}
@showfuncB{gnutls_privkey_init,gnutls_privkey_deinit}
@showfuncdesc{gnutls_privkey_import_x509}
+
@showfuncdesc{gnutls_privkey_import_openpgp}
@showfuncdesc{gnutls_privkey_import_pkcs11}
signature verification operations with the underlying keys.
@showfuncdesc{gnutls_pubkey_verify_data2}
+
@showfuncdesc{gnutls_pubkey_verify_hash}
@showfuncdesc{gnutls_privkey_sign_data}
@showfuncdesc{gnutls_privkey_sign_hash}
key abstractions.
@showfuncdesc{gnutls_x509_crq_set_pubkey}
+
@showfuncdesc{gnutls_x509_crt_set_pubkey}
@showfuncdesc{gnutls_x509_crt_privkey_sign}
@showfuncdesc{gnutls_x509_crl_privkey_sign}
@showfuncD{gnutls_priority_set_direct,gnutls_priority_init,gnutls_priority_deinit,gnutls_priority_set}
@float Table,tab:prio-keywords
-@multitable @columnfractions .30 .70
+@multitable @columnfractions .20 .70
@headitem Keyword @tab Description
@item PERFORMANCE @tab
All the "secure" ciphersuites are enabled,
@float Table,tab:prio-algorithms
-@multitable @columnfractions .30 .70
+@multitable @columnfractions .20 .70
@headitem Type @tab Keywords
@item Ciphers @tab
AES-128-CBC, AES-256-CBC, AES-128-GCM, CAMELLIA-128-CBC,
@float Table,tab:prio-special
-@multitable @columnfractions .50 .50
+@multitable @columnfractions .45 .45
@headitem Keyword @tab Description
@item %COMPAT @tab
@ref{tab:macs}.
@float Table,tab:ciphers
-@multitable @columnfractions .30 .70
+@multitable @columnfractions .20 .70
@headitem Algorithm @tab Description
@item 3DES_CBC @tab
This is the DES block cipher algorithm used with triple
@float Table,tab:macs
-@multitable @columnfractions .30 .70
+@multitable @columnfractions .20 .70
@headitem Algorithm @tab Description
@item MAC_MD5 @tab
This is a cryptographic hash algorithm designed by Ron Rivest. Outputs
@showfuncdesc{gnutls_session_ticket_enable_client}
@subsection Safe renegotiation
-@cindex renegotiation
+@cindex Renegotiation
+@cindex Safe renegotiation
TLS gives the option to two communicating parties to renegotiate
and update their security parameters. One useful example of this feature
@node Selecting cryptographic key sizes
@section Selecting cryptographic key sizes
-@cindex key sizes
+@cindex Key sizes
In TLS, since a lot of algorithms are involved, it is not easy to set
a consistent security level. For this reason in @ref{tab:key-sizes} we
publisher = {John Wiley \& Sons, Inc.},
address = {New York, NY, USA},
}
+
+@misc{PKCS11URI,
+ author="Jan Pechanec and Darren J. Moffat",
+ title="{The PKCS 11 URI Scheme}",
+ month="August",
+ year=2011,
+ note = "Work in progress, available from \url{http://tools.ietf.org/html/draft-pechanec-pkcs11uri-05}",
+ url = "http://tools.ietf.org/html/draft-pechanec-pkcs11uri-05"
+}
\documentclass[fontsize=10pt,twoside,openright]{scrbook}
\bibliographystyle{plain}
-\usepackage[paperwidth=18.91cm,paperheight=24.589cm,twoside,bindingoffset=9mm,outer=2.2cm,inner=1cm,top=2.6cm,bottom=2.5cm]{geometry}
+\usepackage[paperwidth=18.91cm,paperheight=24.589cm,twoside,bindingoffset=11mm,outer=2.2cm,inner=1.2cm,top=2.6cm,bottom=2.5cm]{geometry}
\usepackage{fancyhdr}
\usepackage{graphicx}
\usepackage{makeidx}