18 Apr, 2019

1 commit

  • Use subsys_initcall for registration of all templates and generic
    algorithm implementations, rather than module_init. Then change
    cryptomgr to use arch_initcall, to place it before the subsys_initcalls.

    This is needed so that when both a generic and optimized implementation
    of an algorithm are built into the kernel (not loadable modules), the
    generic implementation is registered before the optimized one.
    Otherwise, the self-tests for the optimized implementation are unable to
    allocate the generic implementation for the new comparison fuzz tests.

    Note that on arm, a side effect of this change is that self-tests for
    generic implementations may run before the unaligned access handler has
    been installed. So, unaligned accesses will crash the kernel. This is
    arguably a good thing as it makes it easier to detect that type of bug.

    Signed-off-by: Eric Biggers
    Signed-off-by: Herbert Xu

    Eric Biggers
     

17 Nov, 2016

1 commit


24 Jun, 2016

1 commit

  • As part of the Y2038 development, __getnstimeofday is not supposed to be
    used any more. It is now replaced with ktime_get_ns. The Jitter RNG uses
    the time stamp to measure the execution time of a given code path and
    tries to detect variations in the execution time. Therefore, the only
    requirement the Jitter RNG has, is a sufficient high resolution to
    detect these variations.

    The change was tested on x86 to show an identical behavior as RDTSC. The
    used test code simply measures the execution time of the heart of the
    RNG:

    jent_get_nstime(&time);
    jent_memaccess(ec, min);
    jent_fold_time(NULL, time, &folded, min);
    jent_get_nstime(&time2);
    return ((time2 - time));

    Signed-off-by: Stephan Mueller
    Acked-by: Arnd Bergmann
    Signed-off-by: Herbert Xu

    Stephan Mueller
     

14 Oct, 2015

1 commit


28 Jul, 2015

1 commit


25 Jun, 2015

1 commit

  • The core of the Jitter RNG is intended to be compiled with -O0. To
    ensure that the Jitter RNG can be compiled on all architectures,
    separate out the RNG core into a stand-alone C file that can be compiled
    with -O0 which does not depend on any kernel include file.

    As no kernel includes can be used in the C file implementing the core
    RNG, any dependencies on kernel code must be extracted.

    A second file provides the link to the kernel and the kernel crypto API
    that can be compiled with the regular compile options of the kernel.

    Signed-off-by: Stephan Mueller
    Signed-off-by: Herbert Xu

    Stephan Mueller