cmac.h 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /*
  2. * Copyright 2010-2016 The OpenSSL Project Authors. All Rights Reserved.
  3. *
  4. * Licensed under the OpenSSL license (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. #ifndef HEADER_CMAC_H
  10. # define HEADER_CMAC_H
  11. # ifndef OPENSSL_NO_CMAC
  12. #ifdef __cplusplus
  13. extern "C" {
  14. #endif
  15. # include <openssl/evp.h>
  16. /* Opaque */
  17. typedef struct CMAC_CTX_st CMAC_CTX;
  18. CMAC_CTX *CMAC_CTX_new(void);
  19. void CMAC_CTX_cleanup(CMAC_CTX *ctx);
  20. void CMAC_CTX_free(CMAC_CTX *ctx);
  21. EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx);
  22. int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in);
  23. int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,
  24. const EVP_CIPHER *cipher, ENGINE *impl);
  25. int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen);
  26. int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen);
  27. int CMAC_resume(CMAC_CTX *ctx);
  28. #ifdef __cplusplus
  29. }
  30. #endif
  31. # endif
  32. #endif