Skip to content
Snippets Groups Projects
Select Git revision
  • 896bbc3ef1b065688163ce6c09c31e55fb4cd9f5
  • drm-misc-templates default
  • wip/final/kci-gitlab-lava-v1
  • wip/vignesh/kci-lava-gitlab-runner
  • kci-gitlab-igt-v8
  • kci-gitlab-igt-v4
  • drm-misc-fixes-2024-10-02
  • drm-misc-next-2024-09-26
  • drm-misc-fixes-2024-09-26
  • drm-misc-next-2024-09-20
  • drm-misc-fixes-2024-09-12
  • drm-misc-fixes-2024-09-05
  • drm-misc-next-fixes-2024-09-05
  • drm-misc-fixes-2024-08-29
  • drm-misc-next-2024-08-29
  • drm-misc-next-2024-08-22
  • drm-misc-fixes-2024-08-22
  • drm-misc-next-2024-08-16
  • drm-misc-fixes-2024-08-15
  • drm-misc-next-2024-08-09
  • drm-misc-fixes-2024-08-08
  • drm-misc-next-2024-08-01
  • drm-misc-fixes-2024-08-01
  • drm-misc-next-fixes-2024-07-25
  • drm-misc-next-fixes-2024-07-19
  • drm-misc-next-fixes-2024-07-11
26 results

drm_platform.c

Blame
  • anubis.c 27.79 KiB
    /*
     * Cryptographic API.
     *
     * Anubis Algorithm
     *
     * The Anubis algorithm was developed by Paulo S. L. M. Barreto and
     * Vincent Rijmen.
     *
     * See
     *
     *	P.S.L.M. Barreto, V. Rijmen,
     *	``The Anubis block cipher,''
     *	NESSIE submission, 2000.
     *
     * This software implements the "tweaked" version of Anubis.
     * Only the S-box and (consequently) the rounds constants have been
     * changed.
     *
     * The original authors have disclaimed all copyright interest in this
     * code and thus put it in the public domain. The subsequent authors
     * have put this under the GNU General Public License.
     *
     * By Aaron Grothe ajgrothe@yahoo.com, October 28, 2004
     *
     * 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 <linux/init.h>
    #include <linux/module.h>
    #include <linux/mm.h>
    #include <asm/byteorder.h>
    #include <linux/crypto.h>
    #include <linux/types.h>
    
    #define ANUBIS_MIN_KEY_SIZE	16
    #define ANUBIS_MAX_KEY_SIZE	40
    #define ANUBIS_BLOCK_SIZE	16
    #define ANUBIS_MAX_N		10
    #define ANUBIS_MAX_ROUNDS	(8 + ANUBIS_MAX_N)
    
    struct anubis_ctx {
    	int key_len; // in bits
    	int R;
    	u32 E[ANUBIS_MAX_ROUNDS + 1][4];
    	u32 D[ANUBIS_MAX_ROUNDS + 1][4];
    };
    
    static const u32 T0[256] = {
    	0xba69d2bbU, 0x54a84de5U, 0x2f5ebce2U, 0x74e8cd25U,
    	0x53a651f7U, 0xd3bb6bd0U, 0xd2b96fd6U, 0x4d9a29b3U,
    	0x50a05dfdU, 0xac458acfU, 0x8d070e09U, 0xbf63c6a5U,
    	0x70e0dd3dU, 0x52a455f1U, 0x9a29527bU, 0x4c982db5U,
    	0xeac98f46U, 0xd5b773c4U, 0x97336655U, 0xd1bf63dcU,
    	0x3366ccaaU, 0x51a259fbU, 0x5bb671c7U, 0xa651a2f3U,
    	0xdea15ffeU, 0x48903dadU, 0xa84d9ad7U, 0x992f5e71U,
    	0xdbab4be0U, 0x3264c8acU, 0xb773e695U, 0xfce5d732U,
    	0xe3dbab70U, 0x9e214263U, 0x913f7e41U, 0x9b2b567dU,
    	0xe2d9af76U, 0xbb6bd6bdU, 0x4182199bU, 0x6edca579U,
    	0xa557aef9U, 0xcb8b0b80U, 0x6bd6b167U, 0x95376e59U,
    	0xa15fbee1U, 0xf3fbeb10U, 0xb17ffe81U, 0x0204080cU,
    	0xcc851792U, 0xc49537a2U, 0x1d3a744eU, 0x14285078U,
    	0xc39b2bb0U, 0x63c69157U, 0xdaa94fe6U, 0x5dba69d3U,
    	0x5fbe61dfU, 0xdca557f2U, 0x7dfae913U, 0xcd871394U,
    	0x7ffee11fU, 0x5ab475c1U, 0x6cd8ad75U, 0x5cb86dd5U,
    	0xf7f3fb08U, 0x264c98d4U, 0xffe3db38U, 0xedc79354U,
    	0xe8cd874aU, 0x9d274e69U, 0x6fdea17fU, 0x8e010203U,