diff options
author | Richard Levitte <levitte@openssl.org> | 2019-06-02 09:33:28 +0200 |
---|---|---|
committer | Richard Levitte <levitte@openssl.org> | 2019-08-15 22:12:25 +0200 |
commit | ae0b6b92038b3f6e3a0e2f354cd900f96bce4d8b (patch) | |
tree | c726308e14d5816c12e663349091a896591a590b /crypto/poly1305 | |
parent | 4657693d9e53ea45cbb903969370ddf9d331dafd (diff) |
Move Poly1305 to providers
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/8877)
Diffstat (limited to 'crypto/poly1305')
-rw-r--r-- | crypto/poly1305/build.info | 2 | ||||
-rw-r--r-- | crypto/poly1305/poly1305_meth.c | 147 |
2 files changed, 1 insertions, 148 deletions
diff --git a/crypto/poly1305/build.info b/crypto/poly1305/build.info index 064c2599d5..cab28f4bdb 100644 --- a/crypto/poly1305/build.info +++ b/crypto/poly1305/build.info @@ -29,7 +29,7 @@ IF[{- !$disabled{asm} -}] ENDIF ENDIF -SOURCE[../../libcrypto]=poly1305_ameth.c poly1305_meth.c poly1305.c $POLY1305ASM +SOURCE[../../libcrypto]=poly1305_ameth.c poly1305.c $POLY1305ASM DEFINE[../../libcrypto]=$POLY1305DEF GENERATE[poly1305-sparcv9.S]=asm/poly1305-sparcv9.pl $(PERLASM_SCHEME) diff --git a/crypto/poly1305/poly1305_meth.c b/crypto/poly1305/poly1305_meth.c deleted file mode 100644 index f1ade58b40..0000000000 --- a/crypto/poly1305/poly1305_meth.c +++ /dev/null @@ -1,147 +0,0 @@ -/* - * Copyright 2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the Apache License 2.0 (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ -#include <openssl/evp.h> -#include "internal/evp_int.h" -#include "internal/poly1305.h" -#include "internal/cryptlib.h" -#include "poly1305_local.h" - -/* typedef EVP_MAC_IMPL */ -struct evp_mac_impl_st { - POLY1305 *ctx; /* poly1305 context */ -}; - -static EVP_MAC_IMPL *poly1305_new(void) -{ - EVP_MAC_IMPL *ctx; - - if ((ctx = OPENSSL_zalloc(sizeof(*ctx))) == NULL - || (ctx->ctx = OPENSSL_zalloc(sizeof(POLY1305))) == NULL) { - OPENSSL_free(ctx); - return 0; - } - return ctx; -} - -static void poly1305_free(EVP_MAC_IMPL *ctx) -{ - if (ctx != NULL) { - OPENSSL_free(ctx->ctx); - OPENSSL_free(ctx); - } -} - -static EVP_MAC_IMPL *poly1305_dup(const EVP_MAC_IMPL *src) -{ - EVP_MAC_IMPL *dst; - - dst = poly1305_new(); - if (dst == NULL) - return NULL; - - *dst->ctx = *src->ctx; - - return dst; -} - -static size_t poly1305_size(EVP_MAC_IMPL *ctx) -{ - return POLY1305_DIGEST_SIZE; -} - -static int poly1305_init(EVP_MAC_IMPL *ctx) -{ - /* initialize the context in MAC_ctrl function */ - return 1; -} - -static int poly1305_update(EVP_MAC_IMPL *ctx, const unsigned char *data, - size_t datalen) -{ - POLY1305 *poly_ctx = ctx->ctx; - - /* poly1305 has nothing to return in its update function */ - Poly1305_Update(poly_ctx, data, datalen); - return 1; -} - -static int poly1305_final(EVP_MAC_IMPL *ctx, unsigned char *out) -{ - POLY1305 *poly_ctx = ctx->ctx; - - Poly1305_Final(poly_ctx, out); - return 1; -} - -static int poly1305_ctrl(EVP_MAC_IMPL *ctx, int cmd, va_list args) -{ - POLY1305 *poly_ctx = ctx->ctx; - unsigned char *key; - size_t keylen; - - switch (cmd) { - case EVP_MAC_CTRL_SET_KEY: - key = va_arg(args, unsigned char *); - keylen = va_arg(args, size_t); - - if (keylen != POLY1305_KEY_SIZE) { - EVPerr(EVP_F_POLY1305_CTRL, EVP_R_INVALID_KEY_LENGTH); - return 0; - } - Poly1305_Init(poly_ctx, key); - return 1; - default: - return -2; - } - return 1; -} - -static int poly1305_ctrl_int(EVP_MAC_IMPL *ctx, int cmd, ...) -{ - int rv; - va_list args; - - va_start(args, cmd); - rv = poly1305_ctrl(ctx, cmd, args); - va_end(args); - - return rv; -} - -static int poly1305_ctrl_str_cb(void *ctx, int cmd, void *buf, size_t buflen) -{ - return poly1305_ctrl_int(ctx, cmd, buf, buflen); -} - -static int poly1305_ctrl_str(EVP_MAC_IMPL *ctx, - const char *type, const char *value) -{ - if (value == NULL) - return 0; - if (strcmp(type, "key") == 0) - return EVP_str2ctrl(poly1305_ctrl_str_cb, ctx, EVP_MAC_CTRL_SET_KEY, - value); - if (strcmp(type, "hexkey") == 0) - return EVP_hex2ctrl(poly1305_ctrl_str_cb, ctx, EVP_MAC_CTRL_SET_KEY, - value); - return -2; -} - -const EVP_MAC poly1305_meth = { - EVP_MAC_POLY1305, - poly1305_new, - poly1305_dup, - poly1305_free, - poly1305_size, - poly1305_init, - poly1305_update, - poly1305_final, - poly1305_ctrl, - poly1305_ctrl_str -}; |