crypto.9: Sync with FreeBSD's crypto(9) manual page.
authorSascha Wildner <saw@online.de>
Fri, 2 Oct 2009 22:38:29 +0000 (00:38 +0200)
committerSascha Wildner <saw@online.de>
Fri, 2 Oct 2009 22:38:29 +0000 (00:38 +0200)
Also fix prototypes and MLINKS.

Various parts of the page are still outdated, though.

share/man/man9/Makefile
share/man/man9/crypto.9

index e917fe5..cb07f7b 100644 (file)
@@ -344,6 +344,23 @@ MLINKS+=crit_enter.9 crit_enter_gd.9 \
        crit_enter.9 crit_exit.9 \
        crit_enter.9 crit_exit_gd.9 \
        crit_enter.9 crit_exit_id.9
+MLINKS+=crypto.9 crypto_dispatch.9 \
+       crypto.9 crypto_done.9 \
+       crypto.9 crypto_find_device_byhid.9 \
+       crypto.9 crypto_find_driver.9 \
+       crypto.9 crypto_freereq.9 \
+       crypto.9 crypto_freesession.9 \
+       crypto.9 crypto_getcaps.9 \
+       crypto.9 crypto_get_driverid.9 \
+       crypto.9 crypto_getreq.9 \
+       crypto.9 crypto_kdispatch.9 \
+       crypto.9 crypto_kdone.9 \
+       crypto.9 crypto_kregister.9 \
+       crypto.9 crypto_newsession.9 \
+       crypto.9 crypto_register.9 \
+       crypto.9 crypto_unblock.9 \
+       crypto.9 crypto_unregister.9 \
+       crypto.9 crypto_unregister_all.9
 MLINKS+=devclass_add_driver.9 devclass_delete_driver.9 \
        devclass_add_driver.9 devclass_find_driver.9
 MLINKS+=device_add_child.9 device_add_child_ordered.9
index e30f843..3e96e38 100644 (file)
@@ -1,6 +1,6 @@
 .\"    $OpenBSD: crypto.9,v 1.19 2002/07/16 06:31:57 angelos Exp $
 .\"
-.\" The author of this man page is Angelos D. Keromytis (angelos@cis.upenn.edu)
+.\" The author of this manual page is Angelos D. Keromytis (angelos@cis.upenn.edu)
 .\"
 .\" Copyright (c) 2000, 2001 Angelos D. Keromytis
 .\"
 .\" MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
 .\" PURPOSE.
 .\"
-.\" $FreeBSD: src/share/man/man9/crypto.9,v 1.3.2.2 2003/01/28 17:11:48 sam Exp $
-.\" $DragonFly: src/share/man/man9/crypto.9,v 1.4 2006/10/19 18:44:00 swildner Exp $
+.\" $FreeBSD: src/share/man/man9/crypto.9,v 1.14 2007/09/19 16:28:46 brueffer Exp $
 .\"
-.Dd November 21, 2002
+.Dd October 3, 2009
 .Dt CRYPTO 9
 .Os
 .Sh NAME
 .Sh SYNOPSIS
 .In opencrypto/cryptodev.h
 .Ft int32_t
-.Fn crypto_get_driverid u_int8_t
+.Fn crypto_get_driverid "device_t dev" "int flags"
 .Ft int
-.Fn crypto_register u_int32_t int u_int16_t u_int32_t "int \*[lp]*\*[rp]\*[lp]void *, u_int32_t *, struct cryptoini *\*[rp]" "int \*[lp]*\*[rp]\*[lp]void *, u_int64_t\*[rp]" "int \*[lp]*\*[rp]\*[lp]void *, struct cryptop *\*[rp]" "void *"
+.Fn crypto_find_driver "const char *match"
+.Ft device_t
+.Fn crypto_find_device_byhid "int hid"
 .Ft int
-.Fn crypto_kregister u_int32_t int u_int32_t "int \*[lp]*\*[rp]\*[lp]void *, struct cryptkop *\*[rp]" "void *"
+.Fn crypto_getcaps "int hid"
 .Ft int
-.Fn crypto_unregister u_int32_t int
+.Fn crypto_register "u_int32_t driverid" "int alg" "u_int16_t maxoplen" "u_int32_t flags"
 .Ft int
-.Fn crypto_unregister_all u_int32_t
+.Fn crypto_kregister "u_int32_t driverid" "int kalg" "u_int32_t flags"
+.Ft int
+.Fn crypto_unregister "u_int32_t driverid" "int alg"
+.Ft int
+.Fn crypto_unregister_all "u_int32_t driverid"
 .Ft void
-.Fn crypto_done "struct cryptop *"
+.Fn crypto_done "struct cryptop *crp"
 .Ft void
-.Fn crypto_kdone "struct cryptkop *"
+.Fn crypto_kdone "struct cryptkop *krp"
 .Ft int
-.Fn crypto_newsession "u_int64_t *" "struct cryptoini *" int
+.Fn crypto_newsession "u_int64_t *sid" "struct cryptoini *cri" "int crid"
 .Ft int
-.Fn crypto_freesession u_int64_t
+.Fn crypto_freesession "u_int64_t *sid"
 .Ft int
-.Fn crypto_dispatch "struct cryptop *"
+.Fn crypto_dispatch "struct cryptop *crp"
 .Ft int
-.Fn crypto_kdispatch "struct cryptkop *"
+.Fn crypto_kdispatch "struct cryptkop *krp"
 .Ft int
-.Fn crypto_unblock u_int32_t int
+.Fn crypto_unblock "u_int32_t driverid" "int what"
 .Ft "struct cryptop *"
-.Fn crypto_getreq int
+.Fn crypto_getreq "int num"
 .Ft void
-.Fn crypto_freereq void
+.Fn crypto_freereq "struct cryptop *crp"
 .Bd -literal
 #define        CRYPTO_SYMQ     0x1
 #define        CRYPTO_ASYMQ    0x2
@@ -63,7 +68,7 @@
 struct cryptoini {
        int                cri_alg;
        int                cri_klen;
-       int                cri_rnd;
+       int                cri_mlen;
        caddr_t            cri_key;
        u_int8_t           cri_iv[EALG_MAX_BLOCK_LEN];
        struct cryptoini  *cri_next;
@@ -75,6 +80,10 @@ struct cryptodesc {
        int                crd_inject;
        int                crd_flags;
        struct cryptoini   CRD_INI;
+#define crd_iv          CRD_INI.cri_iv
+#define crd_key         CRD_INI.cri_key
+#define crd_alg         CRD_INI.cri_alg
+#define crd_klen        CRD_INI.cri_klen
        struct cryptodesc *crd_next;
 };
 
@@ -172,30 +181,33 @@ Contains an algorithm identifier.
 Currently supported algorithms are:
 .Pp
 .Bl -tag -width ".Dv CRYPTO_RIPEMD160_HMAC" -compact
-.It Dv CRYPTO_DES_CBC
-.It Dv CRYPTO_3DES_CBC
+.It Dv CRYPTO_AES_CBC
+.It Dv CRYPTO_ARC4
 .It Dv CRYPTO_BLF_CBC
+.It Dv CRYPTO_CAMELLIA_CBC
 .It Dv CRYPTO_CAST_CBC
+.It Dv CRYPTO_DES_CBC
+.It Dv CRYPTO_3DES_CBC
 .It Dv CRYPTO_SKIPJACK_CBC
+.It Dv CRYPTO_MD5
 .It Dv CRYPTO_MD5_HMAC
-.It Dv CRYPTO_SHA1_HMAC
-.It Dv CRYPTO_RIPEMD160_HMAC
 .It Dv CRYPTO_MD5_KPDK
-.It Dv CRYPTO_SHA1_KPDK
-.It Dv CRYPTO_AES_CBC
-.It Dv CRYPTO_ARC4
-.It Dv CRYPTO_MD5
+.It Dv CRYPTO_RIPEMD160_HMAC
 .It Dv CRYPTO_SHA1
-.It Dv CRYPTO_SHA2_HMAC
+.It Dv CRYPTO_SHA1_HMAC
+.It Dv CRYPTO_SHA1_KPDK
+.It Dv CRYPTO_SHA2_256_HMAC
+.It Dv CRYPTO_SHA2_384_HMAC
+.It Dv CRYPTO_SHA2_512_HMAC
 .It Dv CRYPTO_NULL_HMAC
 .It Dv CRYPTO_NULL_CBC
 .El
 .It Va cri_klen
 Specifies the length of the key in bits, for variable-size key
 algorithms.
-.It Va cri_rnd
-Specifies the number of rounds to be used with the algorithm, for
-variable-round algorithms.
+.It Va cri_mlen
+Specifies how many bytes from the calculated hash should be copied back.
+0 means entire hash.
 .It Va cri_key
 Contains the key to be used with the algorithm.
 .It Va cri_iv
@@ -278,11 +290,27 @@ or if no callback routine was specified).
 .It Va crp_flags
 Is a bitmask of flags associated with this request.
 Currently defined flags are:
-.Bl -tag -width ".Dv CRYPTO_F_IMBUF"
+.Bl -tag -width ".Dv CRYPTO_F_CBIFSYNC"
 .It Dv CRYPTO_F_IMBUF
 The buffer pointed to by
 .Va crp_buf
 is an mbuf chain.
+.It Dv CRYPTO_F_IOV
+The buffer pointed to by
+.Va crp_buf
+is an
+.Vt uio
+structure.
+.It Dv CRYPTO_F_REL
+Must return data in the same place.
+.It Dv CRYPTO_F_BATCH
+Batch operation if possible.
+.It Dv CRYPTO_F_CBIMM
+Do callback immediately instead of doing it from a dedicated kernel thread.
+.It Dv CRYPTO_F_DONE
+Operation completed.
+.It Dv CRYPTO_F_CBIFSYNC
+Do callback immediately if operation is synchronous.
 .El
 .It Va crp_buf
 Points to the input buffer.
@@ -302,6 +330,23 @@ information about what type of cryptographic operation should be done
 on the input buffer.
 The various fields are:
 .Bl -tag -width ".Va crd_inject"
+.It Va crd_iv
+The field where IV should be provided when the
+.Dv CRD_F_IV_EXPLICIT
+flag is given.
+.It Va crd_key
+When the
+.Dv CRD_F_KEY_EXPLICIT
+flag is given, the
+.Va crd_key
+points to a buffer with encryption or authentication key.
+.It Va crd_alg
+An algorithm to use.
+Must be the same as the one given at newsession time.
+.It Va crd_klen
+The
+.Va crd_key
+key length.
 .It Va crd_skip
 The offset in the input buffer where processing should start.
 .It Va crd_len
@@ -318,7 +363,7 @@ For MAC algorithms, this is where the result of the keyed hash will be
 inserted.
 .It Va crd_flags
 The following flags are defined:
-.Bl -tag -width ".Dv CRD_F_IV_EXPLICIT"
+.Bl -tag -width 3n
 .It Dv CRD_F_ENCRYPT
 For encryption algorithms, this bit is set when encryption is required
 (when not set, decryption is performed).
@@ -343,8 +388,8 @@ flag.
 .It Dv CRD_F_IV_EXPLICIT
 For encryption algorithms, this bit is set when the IV is explicitly
 provided by the consumer in the
-.Va cri_iv
-fields.
+.Va crd_iv
+field.
 Otherwise, for encryption operations the IV is provided for by
 the driver used to perform the operation, whereas for decryption
 operations it is pointed to by the
@@ -355,6 +400,14 @@ This flag is typically used when the IV is calculated
 by the consumer, and does not precede the data (some
 .Xr ipsec 4
 configurations, and the encrypted swap are two such examples).
+.It Dv CRD_F_KEY_EXPLICIT
+For encryption and authentication (MAC) algorithms, this bit is set when the key
+is explicitly provided by the consumer in the
+.Va crd_key
+field for the given operation.
+Otherwise, the key is taken at newsession time from the
+.Va cri_key
+field.
 .It Dv CRD_F_COMP
 For compression algorithms, this bit is set when compression is required (when
 not set, decompression is performed).