cregit-Linux how code gets into the kernel

Release 4.7 crypto/sha1_generic.c

Directory: crypto
/*
 * Cryptographic API.
 *
 * SHA1 Secure Hash Algorithm.
 *
 * Derived from cryptoapi implementation, adapted for in-place
 * scatterlist interface.
 *
 * Copyright (c) Alan Smithee.
 * Copyright (c) Andrew McDonald <andrew@mcdonald.org.uk>
 * Copyright (c) Jean-Francois Dive <jef@linuxbe.org>
 *
 * This program is free software; you can redistribute it and/or modify it
 * under the terms of the GNU General Public License as published by the Free
 * Software Foundation; either version 2 of the License, or (at your option)
 * any later version.
 *
 */
#include <crypto/internal/hash.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/mm.h>
#include <linux/cryptohash.h>
#include <linux/types.h>
#include <crypto/sha.h>
#include <crypto/sha1_base.h>
#include <asm/byteorder.h>


const u8 sha1_zero_message_hash[SHA1_DIGEST_SIZE] = {
	0xda, 0x39, 0xa3, 0xee, 0x5e, 0x6b, 0x4b, 0x0d,
	0x32, 0x55, 0xbf, 0xef, 0x95, 0x60, 0x18, 0x90,
	0xaf, 0xd8, 0x07, 0x09
};

EXPORT_SYMBOL_GPL(sha1_zero_message_hash);


static void sha1_generic_block_fn(struct sha1_state *sst, u8 const *src, int blocks) { u32 temp[SHA_WORKSPACE_WORDS]; while (blocks--) { sha_transform(sst->state, src, temp); src += SHA1_BLOCK_SIZE; } memzero_explicit(temp, sizeof(temp)); }

Contributors

PersonTokensPropCommitsCommitProp
james morrisjames morris1831.58%330.00%
nicolas pitrenicolas pitre1221.05%110.00%
matt mackallmatt mackall1221.05%110.00%
ard biesheuvelard biesheuvel1119.30%110.00%
herbert xuherbert xu23.51%220.00%
daniel borkmanndaniel borkmann11.75%110.00%
mandeep singh bainesmandeep singh baines11.75%110.00%
Total57100.00%10100.00%


int crypto_sha1_update(struct shash_desc *desc, const u8 *data, unsigned int len) { return sha1_base_do_update(desc, data, len, sha1_generic_block_fn); }

Contributors

PersonTokensPropCommitsCommitProp
ard biesheuvelard biesheuvel2477.42%133.33%
james morrisjames morris619.35%133.33%
adrian-ken rueegseggeradrian-ken rueegsegger13.23%133.33%
Total31100.00%3100.00%

EXPORT_SYMBOL(crypto_sha1_update);
static int sha1_final(struct shash_desc *desc, u8 *out) { sha1_base_do_finalize(desc, sha1_generic_block_fn); return sha1_base_finish(desc, out); }

Contributors

PersonTokensPropCommitsCommitProp
james morrisjames morris1756.67%240.00%
adrian-ken rueegseggeradrian-ken rueegsegger620.00%120.00%
ard biesheuvelard biesheuvel516.67%120.00%
herbert xuherbert xu26.67%120.00%
Total30100.00%5100.00%


int crypto_sha1_finup(struct shash_desc *desc, const u8 *data, unsigned int len, u8 *out) { sha1_base_do_update(desc, data, len, sha1_generic_block_fn); return sha1_final(desc, out); }

Contributors

PersonTokensPropCommitsCommitProp
herbert xuherbert xu2457.14%150.00%
ard biesheuvelard biesheuvel1842.86%150.00%
Total42100.00%2100.00%

EXPORT_SYMBOL(crypto_sha1_finup); static struct shash_alg alg = { .digestsize = SHA1_DIGEST_SIZE, .init = sha1_base_init, .update = crypto_sha1_update, .final = sha1_final, .finup = crypto_sha1_finup, .descsize = sizeof(struct sha1_state), .base = { .cra_name = "sha1", .cra_driver_name= "sha1-generic", .cra_flags = CRYPTO_ALG_TYPE_SHASH, .cra_blocksize = SHA1_BLOCK_SIZE, .cra_module = THIS_MODULE, } };
static int __init sha1_generic_mod_init(void) { return crypto_register_shash(&alg); }

Contributors

PersonTokensPropCommitsCommitProp
james morrisjames morris1487.50%133.33%
adrian-ken rueegseggeradrian-ken rueegsegger16.25%133.33%
kamalesh babulalkamalesh babulal16.25%133.33%
Total16100.00%3100.00%


static void __exit sha1_generic_mod_fini(void) { crypto_unregister_shash(&alg); }

Contributors

PersonTokensPropCommitsCommitProp
james morrisjames morris1386.67%133.33%
adrian-ken rueegseggeradrian-ken rueegsegger16.67%133.33%
kamalesh babulalkamalesh babulal16.67%133.33%
Total15100.00%3100.00%

module_init(sha1_generic_mod_init); module_exit(sha1_generic_mod_fini); MODULE_LICENSE("GPL"); MODULE_DESCRIPTION("SHA1 Secure Hash Algorithm"); MODULE_ALIAS_CRYPTO("sha1"); MODULE_ALIAS_CRYPTO("sha1-generic");

Overall Contributors

PersonTokensPropCommitsCommitProp
james morrisjames morris13234.38%315.00%
ard biesheuvelard biesheuvel6917.97%15.00%
labbe corentinlabbe corentin5414.06%15.00%
herbert xuherbert xu389.90%315.00%
adrian-ken rueegseggeradrian-ken rueegsegger348.85%15.00%
matt mackallmatt mackall174.43%15.00%
nicolas pitrenicolas pitre123.12%15.00%
mathias krausemathias krause112.86%210.00%
michal ludvigmichal ludvig61.56%15.00%
kamalesh babulalkamalesh babulal41.04%15.00%
jan glauberjan glauber30.78%15.00%
daniel borkmanndaniel borkmann10.26%15.00%
mandeep singh bainesmandeep singh baines10.26%15.00%
kees cookkees cook10.26%15.00%
sebastian andrzej siewiorsebastian andrzej siewior10.26%15.00%
Total384100.00%20100.00%
Directory: crypto
Information contained on this website is for historical information purposes only and does not indicate or represent copyright ownership.
{% endraw %}