003 File Manager
Current Path:
/usr/src/sys/opencrypto
usr
/
src
/
sys
/
opencrypto
/
📁
..
📄
_cryptodev.h
(197 B)
📄
cbc_mac.c
(8.18 KB)
📄
cbc_mac.h
(2.42 KB)
📄
criov.c
(17.72 KB)
📄
crypto.c
(58 KB)
📄
cryptodeflate.c
(6.69 KB)
📄
cryptodev.c
(37.81 KB)
📄
cryptodev.h
(22.74 KB)
📄
cryptodev_if.m
(6.13 KB)
📄
cryptosoft.c
(36.79 KB)
📄
deflate.h
(2.11 KB)
📄
gfmult.c
(6.47 KB)
📄
gfmult.h
(3.94 KB)
📄
gmac.c
(3.48 KB)
📄
gmac.h
(2.06 KB)
📄
ktls_ocf.c
(19.71 KB)
📄
rmd160.c
(10.79 KB)
📄
rmd160.h
(1.8 KB)
📄
xform.c
(2.72 KB)
📄
xform.h
(1.54 KB)
📄
xform_aes_icm.c
(5.34 KB)
📄
xform_aes_xts.c
(4.32 KB)
📄
xform_auth.h
(3.18 KB)
📄
xform_cbc_mac.c
(1.34 KB)
📄
xform_cml.c
(2.88 KB)
📄
xform_comp.h
(1.56 KB)
📄
xform_deflate.c
(2.49 KB)
📄
xform_enc.h
(3 KB)
📄
xform_gmac.c
(3.31 KB)
📄
xform_null.c
(3.43 KB)
📄
xform_poly1305.c
(2.08 KB)
📄
xform_poly1305.h
(397 B)
📄
xform_rijndael.c
(2.97 KB)
📄
xform_rmd160.c
(2.68 KB)
📄
xform_sha1.c
(2.89 KB)
📄
xform_sha2.c
(5.5 KB)
Editing: xform_poly1305.c
/* This file is in the public domain. */ #include <sys/cdefs.h> __FBSDID("$FreeBSD$"); #include <opencrypto/xform_auth.h> #include <opencrypto/xform_poly1305.h> #include <sodium/crypto_onetimeauth_poly1305.h> struct poly1305_xform_ctx { struct crypto_onetimeauth_poly1305_state state; }; CTASSERT(sizeof(union authctx) >= sizeof(struct poly1305_xform_ctx)); CTASSERT(POLY1305_KEY_LEN == crypto_onetimeauth_poly1305_KEYBYTES); CTASSERT(POLY1305_HASH_LEN == crypto_onetimeauth_poly1305_BYTES); void Poly1305_Init(void *polyctx) { /* Nop */ } void Poly1305_Setkey(struct poly1305_xform_ctx *polyctx, const uint8_t key[__min_size(POLY1305_KEY_LEN)], size_t klen) { int rc; if (klen != POLY1305_KEY_LEN) panic("%s: Bogus keylen: %u bytes", __func__, (unsigned)klen); rc = crypto_onetimeauth_poly1305_init(&polyctx->state, key); if (rc != 0) panic("%s: Invariant violated: %d", __func__, rc); } static void xform_Poly1305_Setkey(void *ctx, const uint8_t *key, u_int klen) { Poly1305_Setkey(ctx, key, klen); } int Poly1305_Update(struct poly1305_xform_ctx *polyctx, const void *data, size_t len) { int rc; rc = crypto_onetimeauth_poly1305_update(&polyctx->state, data, len); if (rc != 0) panic("%s: Invariant violated: %d", __func__, rc); return (0); } static int xform_Poly1305_Update(void *ctx, const void *data, u_int len) { return (Poly1305_Update(ctx, data, len)); } void Poly1305_Final(uint8_t digest[__min_size(POLY1305_HASH_LEN)], struct poly1305_xform_ctx *polyctx) { int rc; rc = crypto_onetimeauth_poly1305_final(&polyctx->state, digest); if (rc != 0) panic("%s: Invariant violated: %d", __func__, rc); } static void xform_Poly1305_Final(uint8_t *digest, void *ctx) { Poly1305_Final(digest, ctx); } struct auth_hash auth_hash_poly1305 = { .type = CRYPTO_POLY1305, .name = "Poly-1305", .keysize = POLY1305_KEY_LEN, .hashsize = POLY1305_HASH_LEN, .ctxsize = sizeof(struct poly1305_xform_ctx), .blocksize = crypto_onetimeauth_poly1305_BYTES, .Init = Poly1305_Init, .Setkey = xform_Poly1305_Setkey, .Update = xform_Poly1305_Update, .Final = xform_Poly1305_Final, };
Upload File
Create Folder