+static int poly1305_setkey(struct poly1305_data_st *ctx,
+ const unsigned char *key, size_t keylen)
+{
+ if (keylen != POLY1305_KEY_SIZE) {
+ ERR_raise(ERR_LIB_PROV, PROV_R_INVALID_KEY_LENGTH);
+ return 0;
+ }
+ Poly1305_Init(&ctx->poly1305, key);
+ ctx->updated = 0;
+ return 1;
+}
+
+static int poly1305_init(void *vmacctx, const unsigned char *key,
+ size_t keylen, const OSSL_PARAM params[])