Blame src/engine.h

Packit Service 2ea82d
/*
Packit Service 2ea82d
 * Copyright (c) 2001 Markus Friedl
Packit Service 2ea82d
 * Copyright (c) 2002 Juha Yrjölä
Packit Service 2ea82d
 * Copyright (c) 2003 Kevin Stefanik
Packit Service 2ea82d
 * Copyright (c) 2016 Michał Trojnara
Packit Service 2ea82d
 *
Packit Service 2ea82d
 * Redistribution and use in source and binary forms, with or without
Packit Service 2ea82d
 * modification, are permitted provided that the following conditions
Packit Service 2ea82d
 * are met:
Packit Service 2ea82d
 * 1. Redistributions of source code must retain the above copyright
Packit Service 2ea82d
 *    notice, this list of conditions and the following disclaimer.
Packit Service 2ea82d
 * 2. Redistributions in binary form must reproduce the above copyright
Packit Service 2ea82d
 *    notice, this list of conditions and the following disclaimer in the
Packit Service 2ea82d
 *    documentation and/or other materials provided with the distribution.
Packit Service 2ea82d
 *
Packit Service 2ea82d
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
Packit Service 2ea82d
 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
Packit Service 2ea82d
 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
Packit Service 2ea82d
 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
Packit Service 2ea82d
 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
Packit Service 2ea82d
 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
Packit Service 2ea82d
 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Packit Service 2ea82d
 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Packit Service 2ea82d
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
Packit Service 2ea82d
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit Service 2ea82d
 */
Packit Service 2ea82d
Packit Service 2ea82d
#ifndef _ENGINE_PKCS11_H
Packit Service 2ea82d
#define _ENGINE_PKCS11_H
Packit Service 2ea82d
Packit Service 2ea82d
#ifndef _WIN32
Packit Service 2ea82d
#include "config.h"
Packit Service 2ea82d
#endif
Packit Service 2ea82d
Packit Service 2ea82d
#include "libp11.h"
Packit Service 2ea82d
#include "eng_err.h"
Packit Service 2ea82d
#include <stdio.h>
Packit Service 2ea82d
#include <string.h>
Packit Service 2ea82d
#include <openssl/crypto.h>
Packit Service 2ea82d
#include <openssl/objects.h>
Packit Service 2ea82d
#include <openssl/engine.h>
Packit Service 2ea82d
#include <openssl/ui.h>
Packit Service 2ea82d
Packit Service 2ea82d
#define CMD_SO_PATH		ENGINE_CMD_BASE
Packit Service 2ea82d
#define CMD_MODULE_PATH 	(ENGINE_CMD_BASE+1)
Packit Service 2ea82d
#define CMD_PIN		(ENGINE_CMD_BASE+2)
Packit Service 2ea82d
#define CMD_VERBOSE		(ENGINE_CMD_BASE+3)
Packit Service 2ea82d
#define CMD_QUIET		(ENGINE_CMD_BASE+4)
Packit Service 2ea82d
#define CMD_LOAD_CERT_CTRL	(ENGINE_CMD_BASE+5)
Packit Service 2ea82d
#define CMD_INIT_ARGS	(ENGINE_CMD_BASE+6)
Packit Service 2ea82d
#define CMD_SET_USER_INTERFACE	(ENGINE_CMD_BASE + 7)
Packit Service 2ea82d
#define CMD_SET_CALLBACK_DATA	(ENGINE_CMD_BASE + 8)
Packit Service 2ea82d
#define CMD_FORCE_LOGIN	(ENGINE_CMD_BASE+9)
Packit Service 2ea82d
Packit Service 2ea82d
typedef struct st_engine_ctx ENGINE_CTX; /* opaque */
Packit Service 2ea82d
Packit Service 2ea82d
/* defined in eng_back.c */
Packit Service 2ea82d
Packit Service 2ea82d
ENGINE_CTX *ctx_new();
Packit Service 2ea82d
Packit Service 2ea82d
int ctx_destroy(ENGINE_CTX *ctx);
Packit Service 2ea82d
Packit Service 2ea82d
int ctx_init(ENGINE_CTX *ctx);
Packit Service 2ea82d
Packit Service 2ea82d
int ctx_finish(ENGINE_CTX *ctx);
Packit Service 2ea82d
Packit Service 2ea82d
int ctx_engine_ctrl(ENGINE_CTX *ctx, int cmd, long i, void *p, void (*f)());
Packit Service 2ea82d
Packit Service 2ea82d
EVP_PKEY *ctx_load_pubkey(ENGINE_CTX *ctx, const char *s_key_id,
Packit Service 2ea82d
	UI_METHOD * ui_method, void *callback_data);
Packit Service 2ea82d
Packit Service 2ea82d
EVP_PKEY *ctx_load_privkey(ENGINE_CTX *ctx, const char *s_key_id,
Packit Service 2ea82d
	UI_METHOD * ui_method, void *callback_data);
Packit Service 2ea82d
Packit Service 2ea82d
void ctx_log(ENGINE_CTX *ctx, int level, const char *format, ...)
Packit Service 2ea82d
#ifdef __GNUC__
Packit Service 2ea82d
	__attribute__((format(printf, 3, 4)))
Packit Service 2ea82d
#endif
Packit Service 2ea82d
	;
Packit Service 2ea82d
Packit Service 2ea82d
/* defined in eng_parse.c */
Packit Service 2ea82d
Packit Service 2ea82d
int parse_pkcs11_uri(ENGINE_CTX *ctx,
Packit Service 2ea82d
	const char *uri, PKCS11_TOKEN **p_tok,
Packit Service 2ea82d
	unsigned char *id, size_t *id_len, char *pin, size_t *pin_len,
Packit Service 2ea82d
	char **label);
Packit Service 2ea82d
Packit Service 2ea82d
int parse_slot_id_string(ENGINE_CTX *ctx,
Packit Service 2ea82d
	const char *slot_id, int *slot,
Packit Service 2ea82d
	unsigned char *id, size_t * id_len, char **label);
Packit Service 2ea82d
Packit Service 2ea82d
#endif
Packit Service 2ea82d
Packit Service 2ea82d
/* vim: set noexpandtab: */