Commit Graph

29 Commits

Author SHA1 Message Date
thorpej 7bc6d90c9d - De-couple the software crypto implementation from the rest of the
framework.  There is no need to waste the space if you are only using
  algoritms provided by hardware accelerators.  To get the software
  implementations, add "pseudo-device swcr" to your kernel config.
- Lazily initialize the opencrypto framework when crypto drivers
  (either hardware or swcr) register themselves with the framework.
2005-11-25 16:16:46 +00:00
tls 389883922e From Gilles Roy <groy@qnx.com>: don't increment buffer pointer twice
(once before callback, once *in* callback) for MAC transforms.  How did
this driver ever work at all without this?
2005-10-16 20:26:47 +00:00
tls 240f327f5b HAVE_CRYPTO_LZS, not HAVE_CRYPTO_LSZ (worse, it was inconsistently used) 2005-10-16 00:14:22 +00:00
tls c4b950020a Don't use rnd_extract_data to set up IVs for new sessions; it is very
expensive, and pointless.  As elsewhere in the kernel (and as approved
under FIPS-140-2 by multiple test labs, incidentally) we use arc4 to
generate IVs here; there is no benefit to their being cryptographically
strong so long as there is a sufficient Hamming distance between them.
2005-10-16 00:12:42 +00:00
tls eb5ea4a10b Add support for the hardware random number generator on the Hifn 7811
and 795x.  This was present in the driver before, but disabled due to
problems with the actual randomness of generated numbers on the
ubiquitious 7900-series parts.  The code here is far, far more
conservative than anyone else's driver for this RNG is -- but I
believe that conservatism is called for, because the 79xx RNG
design is missing a number of pieces from Hifn's "reference" 6500
RNG, and thus the numbers it generates must be treated with some
care.

Support for the 7811 RNG (which is a full-fledged 6500 type
generator) is pretty much the same here as in other variants of
this driver, except that it uses Hifn's "worst case" estimate of
actual entropy per output bit, so it will accumulate bits much
more slowly.  The 7811 support is untested.
2005-10-15 08:58:15 +00:00
tls 15cb9441e1 From OpenBSD hifn7751.c revision 1.149: enable the command-wait interrupt
even if there's only one request in the queue.  Sometimes we seem to miss
multiple interrupts, and command-wait saves us.
2005-10-15 04:31:20 +00:00
thorpej d36c43c511 Use ANSI function decls and static. 2005-06-28 00:28:41 +00:00
perry f31bd063e9 nuke trailing whitespace 2005-02-27 00:26:58 +00:00
jonathan 8457f71310 Identify AES-capable chips (7955, 7956) in the driver attach message. 2004-04-29 01:46:06 +00:00
jonathan 3638f1686a Support symmetric crypto ops, including AES, on hifn 7955 and 7956.
Not tested on 795[56],  but compiles and matches FreeBSD-tested diffs.

Suggested by Sam Leffler <sam@errno.com>, as imported into FreeBSD by Sam.
Submitted to FreeBSD by Rajesh Vaidyanath <RVaidyanath@hifn.com>.
2003-11-16 00:22:09 +00:00
thorpej a81f6a99c2 Remove an unnececssary PCI config read. 2003-08-28 18:13:33 +00:00
thorpej 16bab1291f Hi/Fn is now spelled Hifn. 2003-08-28 15:15:43 +00:00
thorpej 873a015164 ANSI'ify (matches change in openbsd v1.140 of this file). 2003-08-28 15:05:10 +00:00
thorpej 0ee518aff8 Print out a bit more information about which part is present at attach
time, generally tidy up autoconfiguration messages.
2003-08-28 01:53:06 +00:00
jonathan dfdfebe4d9 Discard previous driver; it didnt really do anything.
Replace with  a new from-scratch port of  recent OpenBSD hifn7751 source,
with changes to the crypto-framework calls to fit Sam Leffler's rework.
(Some of the attach-time changes from the previous driver were carried over).
Many thanks to Quentin Garnier (cube@cubidou.net) for testing an pre-release
of the driver and finding a couple of missing initializations.

Note that RNG support is temporarily disabled, until a potential issue
with RNG quality is investigated and resolved.
2003-07-30 18:49:27 +00:00
wiz 1ffa7b76c4 DMA, not dma nor Dma. 2003-05-03 18:10:37 +00:00
thorpej 7ec10e2d99 Use aprint_*(). 2003-01-31 00:07:39 +00:00
simonb 276fd1665c The Double-Semi-Colon Police. 2003-01-20 05:29:53 +00:00
wiz 7e681f7063 interrupt with two rs. 2003-01-06 13:04:54 +00:00
thorpej b75a007d9f Add trailing ; to CFATTACH_DECL. 2002-10-02 16:51:16 +00:00
thorpej 387fc6dc87 Use CFATTACH_DECL(). 2002-09-30 20:37:04 +00:00
thorpej f818766afe Declare all cfattach structures const. 2002-09-27 20:31:45 +00:00
tsutsui b87a051ec8 Call malloc(9) with M_ZERO flag instead of memset() after malloc(). 2002-01-12 16:17:05 +00:00
lukem 9048aaae21 add RCSID 2001-11-13 07:48:40 +00:00
thorpej 7e92a47db9 bcmp -> memcmp 2001-07-07 16:47:43 +00:00
thorpej 51e70f6731 bzero -> memset 2001-07-07 16:46:34 +00:00
thorpej 008dd21471 bcopy -> memcpy 2001-07-07 16:37:38 +00:00
sommerfeld 851de295eb Change pci_intr_map to get interrupt source information from a "struct
pci_attach_args *" instead of from four separate parameters which in
all cases were extracted from the same "struct pci_attach_args".

This both simplifies the driver api, and allows for alternate PCI
interrupt mapping schemes, such as one using the tables described in
the Intel Multiprocessor Spec which describe interrupt wirings for
devices behind pci-pci bridges based on the device's location rather
the bridge's location.

Tested on alpha and i386; welcome to 1.5Q
2000-12-28 22:59:06 +00:00
itojun 32e7a2cd70 hifn7751 crypto card driver. from openbsd.
does nothing useful at this moment - initailize the chip, that's all.
TODO: crypto logic framework in kernel (see openbsd sys/crypto)
TODO: ipsec frontend (need major rework in ipsec tree - should start with busywait)
TODO: character device frontend
2000-10-12 02:59:59 +00:00