Commit dc99b885 authored by letrhee-nsr's avatar letrhee-nsr Committed by Andy Polyakov
Browse files

Add ARIA 32-bit implementation

Modified code from http://seed.kisa.or.kr

 to human readable code.
Previous 8-bit code is available with -DOPENSSL_SMALL_FOOTPRINT.
New code is >2x faster.

Reviewed-by: default avatarAndy Polyakov <appro@openssl.org>
Reviewed-by: default avatarRich Salz <rsalz@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/3242)
parent 6e64c560
Loading
Loading
Loading
Loading
+862 −101

File changed.

Preview size limit exceeded, changes collapsed.

+7 −4
Original line number Diff line number Diff line
@@ -11,6 +11,8 @@
 * Copyright (c) 2017 Oracle and/or its affiliates.  All rights reserved.
 */

 /* Copyright (c) 2017 National Security Resarch Institute.  All rights reserved. */

#ifndef HEADER_ARIA_H
# define HEADER_ARIA_H

@@ -20,8 +22,6 @@
#  error ARIA is disabled.
# endif

# include <stddef.h>

# define ARIA_ENCRYPT     1
# define ARIA_DECRYPT     0

@@ -32,11 +32,14 @@
extern "C" {
# endif

typedef unsigned char ARIA_u128[ARIA_BLOCK_SIZE];
typedef union {
    unsigned char c[ARIA_BLOCK_SIZE];
    unsigned int u[ARIA_BLOCK_SIZE / sizeof(unsigned int)];
} ARIA_u128;

struct aria_key_st {
    unsigned int rounds;
    ARIA_u128 rd_key[ARIA_MAX_KEYS];
    unsigned int rounds;
};
typedef struct aria_key_st ARIA_KEY;