Home | History | Annotate | Line # | Download | only in ciphers
      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