1 /* 2 * Copyright 2019-2021 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the Apache License 2.0 (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10 /*- 11 * Generic support for ARIA GCM. 12 */ 13 14 #include "cipher_aria_gcm.h" 15 16 static int aria_gcm_initkey(PROV_GCM_CTX *ctx, const unsigned char *key, 17 size_t keylen) 18 { 19 PROV_ARIA_GCM_CTX *actx = (PROV_ARIA_GCM_CTX *)ctx; 20 ARIA_KEY *ks = &actx->ks.ks; 21 22 GCM_HW_SET_KEY_CTR_FN(ks, ossl_aria_set_encrypt_key, ossl_aria_encrypt, NULL); 23 return 1; 24 } 25 26 static const PROV_GCM_HW aria_gcm = { 27 aria_gcm_initkey, 28 ossl_gcm_setiv, 29 ossl_gcm_aad_update, 30 ossl_gcm_cipher_update, 31 ossl_gcm_cipher_final, 32 ossl_gcm_one_shot 33 }; 34 const PROV_GCM_HW *ossl_prov_aria_hw_gcm(size_t keybits) 35 { 36 return &aria_gcm; 37 } 38