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