cregit-Linux how code gets into the kernel

Release 4.15 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 Morris1831.58%330.00%
Matt Mackall1221.05%110.00%
Nico Pitre1221.05%110.00%
Ard Biesheuvel1119.30%110.00%
Herbert Xu23.51%220.00%
Daniel Borkmann11.75%110.00%
Mandeep 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 Biesheuvel2477.42%133.33%
James Morris619.35%133.33%
Adrian-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 Morris1756.67%240.00%
Adrian-Ken Rueegsegger620.00%120.00%
Ard Biesheuvel516.67%120.00%
Herbert 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 Xu2457.14%150.00%
Ard 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 Morris1487.50%133.33%
Adrian-Ken Rueegsegger16.25%133.33%
Kamalesh Babulal16.25%133.33%
Total16100.00%3100.00%


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

Contributors

PersonTokensPropCommitsCommitProp
James Morris1386.67%133.33%
Kamalesh Babulal16.67%133.33%
Adrian-Ken Rueegsegger16.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 Morris13234.38%315.00%
Ard Biesheuvel6917.97%15.00%
Corentin Labbe5414.06%15.00%
Herbert Xu389.90%315.00%
Adrian-Ken Rueegsegger348.85%15.00%
Matt Mackall174.43%15.00%
Nico Pitre123.12%15.00%
Mathias Krause112.86%210.00%
Michal Ludvig61.56%15.00%
Kamalesh Babulal41.04%15.00%
Jan Glauber30.78%15.00%
Mandeep Singh Baines10.26%15.00%
Kees Cook10.26%15.00%
Sebastian Andrzej Siewior10.26%15.00%
Daniel Borkmann10.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.
Created with cregit.