1*ca37791eSchristos /* 2*ca37791eSchristos * Copyright (c) 2018 Yubico AB. All rights reserved. 3*ca37791eSchristos * Use of this source code is governed by a BSD-style 4*ca37791eSchristos * license that can be found in the LICENSE file. 5*ca37791eSchristos */ 6*ca37791eSchristos 7*ca37791eSchristos #ifndef _FIDO_ES256_H 8*ca37791eSchristos #define _FIDO_ES256_H 9*ca37791eSchristos 10*ca37791eSchristos #include <openssl/ec.h> 11*ca37791eSchristos 12*ca37791eSchristos #include <stdint.h> 13*ca37791eSchristos #include <stdlib.h> 14*ca37791eSchristos 15*ca37791eSchristos #ifdef _FIDO_INTERNAL 16*ca37791eSchristos #include "types.h" 17*ca37791eSchristos #else 18*ca37791eSchristos #include <fido.h> 19*ca37791eSchristos #endif 20*ca37791eSchristos 21*ca37791eSchristos #ifdef __cplusplus 22*ca37791eSchristos extern "C" { 23*ca37791eSchristos #endif /* __cplusplus */ 24*ca37791eSchristos 25*ca37791eSchristos es256_pk_t *es256_pk_new(void); 26*ca37791eSchristos void es256_pk_free(es256_pk_t **); 27*ca37791eSchristos EVP_PKEY *es256_pk_to_EVP_PKEY(const es256_pk_t *); 28*ca37791eSchristos 29*ca37791eSchristos int es256_pk_from_EC_KEY(es256_pk_t *, const EC_KEY *); 30*ca37791eSchristos int es256_pk_from_ptr(es256_pk_t *, const void *, size_t); 31*ca37791eSchristos 32*ca37791eSchristos #ifdef _FIDO_INTERNAL 33*ca37791eSchristos es256_sk_t *es256_sk_new(void); 34*ca37791eSchristos void es256_sk_free(es256_sk_t **); 35*ca37791eSchristos EVP_PKEY *es256_sk_to_EVP_PKEY(const es256_sk_t *); 36*ca37791eSchristos 37*ca37791eSchristos int es256_derive_pk(const es256_sk_t *, es256_pk_t *); 38*ca37791eSchristos int es256_sk_create(es256_sk_t *); 39*ca37791eSchristos 40*ca37791eSchristos int es256_pk_set_x(es256_pk_t *, const unsigned char *); 41*ca37791eSchristos int es256_pk_set_y(es256_pk_t *, const unsigned char *); 42*ca37791eSchristos #endif 43*ca37791eSchristos 44*ca37791eSchristos #ifdef __cplusplus 45*ca37791eSchristos } /* extern "C" */ 46*ca37791eSchristos #endif /* __cplusplus */ 47*ca37791eSchristos 48*ca37791eSchristos #endif /* !_FIDO_ES256_H */ 49