linux/include/crypto/gcm.h
<<
>>
Prefs
   1#ifndef _CRYPTO_GCM_H
   2#define _CRYPTO_GCM_H
   3
   4#include <linux/errno.h>
   5
   6#define GCM_AES_IV_SIZE 12
   7#define GCM_RFC4106_IV_SIZE 8
   8#define GCM_RFC4543_IV_SIZE 8
   9
  10/*
  11 * validate authentication tag for GCM
  12 */
  13static inline int crypto_gcm_check_authsize(unsigned int authsize)
  14{
  15        switch (authsize) {
  16        case 4:
  17        case 8:
  18        case 12:
  19        case 13:
  20        case 14:
  21        case 15:
  22        case 16:
  23                break;
  24        default:
  25                return -EINVAL;
  26        }
  27
  28        return 0;
  29}
  30
  31/*
  32 * validate authentication tag for RFC4106
  33 */
  34static inline int crypto_rfc4106_check_authsize(unsigned int authsize)
  35{
  36        switch (authsize) {
  37        case 8:
  38        case 12:
  39        case 16:
  40                break;
  41        default:
  42                return -EINVAL;
  43        }
  44
  45        return 0;
  46}
  47
  48/*
  49 * validate assoclen for RFC4106/RFC4543
  50 */
  51static inline int crypto_ipsec_check_assoclen(unsigned int assoclen)
  52{
  53        switch (assoclen) {
  54        case 16:
  55        case 20:
  56                break;
  57        default:
  58                return -EINVAL;
  59        }
  60
  61        return 0;
  62}
  63#endif
  64