-/* $OpenBSD: cmac.c,v 1.13 2022/12/26 07:18:51 jmc Exp $ */
+/* $OpenBSD: cmac.c,v 1.14 2023/07/08 14:27:14 beck Exp $ */
/* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL
* project.
*/
ctx->nlast_block = -1;
return ctx;
}
+LCRYPTO_ALIAS(CMAC_CTX_new);
void
CMAC_CTX_cleanup(CMAC_CTX *ctx)
explicit_bzero(ctx->last_block, EVP_MAX_BLOCK_LENGTH);
ctx->nlast_block = -1;
}
+LCRYPTO_ALIAS(CMAC_CTX_cleanup);
EVP_CIPHER_CTX *
CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx)
{
return &ctx->cctx;
}
+LCRYPTO_ALIAS(CMAC_CTX_get0_cipher_ctx);
void
CMAC_CTX_free(CMAC_CTX *ctx)
CMAC_CTX_cleanup(ctx);
free(ctx);
}
+LCRYPTO_ALIAS(CMAC_CTX_free);
int
CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in)
out->nlast_block = in->nlast_block;
return 1;
}
+LCRYPTO_ALIAS(CMAC_CTX_copy);
int
CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen,
}
return 1;
}
+LCRYPTO_ALIAS(CMAC_Init);
int
CMAC_Update(CMAC_CTX *ctx, const void *in, size_t dlen)
ctx->nlast_block = dlen;
return 1;
}
+LCRYPTO_ALIAS(CMAC_Update);
int
CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen)
}
return 1;
}
+LCRYPTO_ALIAS(CMAC_Final);
int
CMAC_resume(CMAC_CTX *ctx)
*/
return EVP_EncryptInit_ex(&ctx->cctx, NULL, NULL, NULL, ctx->tbl);
}
+LCRYPTO_ALIAS(CMAC_resume);
--- /dev/null
+/* $OpenBSD: cmac.h,v 1.1 2023/07/08 14:27:14 beck Exp $ */
+/*
+ * Copyright (c) 2023 Bob Beck <beck@openbsd.org>
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef _LIBCRYPTO_CMAC_H
+#define _LIBCRYPTO_CMAC_H
+
+#ifndef _MSC_VER
+#include_next <openssl/cmac.h>
+#else
+#include "../include/openssl/cmac.h"
+#endif
+#include "crypto_namespace.h"
+
+LCRYPTO_USED(CMAC_CTX_new);
+LCRYPTO_USED(CMAC_CTX_cleanup);
+LCRYPTO_USED(CMAC_CTX_free);
+LCRYPTO_USED(CMAC_CTX_get0_cipher_ctx);
+LCRYPTO_USED(CMAC_CTX_copy);
+LCRYPTO_USED(CMAC_Init);
+LCRYPTO_USED(CMAC_Update);
+LCRYPTO_USED(CMAC_Final);
+LCRYPTO_USED(CMAC_resume);
+
+#endif /* _LIBCRYPTO_CMAC_H */