-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathkcaexports.h
81 lines (62 loc) · 2.16 KB
/
kcaexports.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/*
* Copyright (c) 2008 Secure Endpoints Inc.
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use, copy,
* modify, merge, publish, distribute, sublicense, and/or sell copies
* of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
* DEALINGS IN THE SOFTWARE.
*/
/* $Id$ */
#pragma once
#include "credprov.h"
#include<openssl/x509v3.h>
#include "kx509.h"
#include "doauth.h"
typedef struct _KCAPluginExports {
DWORD magic; /* Always KCAPluginExportsMagic */
DWORD size; /* Size of the structure, in bytes */
/* IN */
void (*log)(const char *);
/* OUT */
int
(*getcert)(RSA **, int *, X509 **, char *, int, char *, int, char *, char *);
void
(*clean_cert)(RSA *, X509 *);
RSA *
(*client_genkey)(int);
wchar_t *
(*getContainerName)(X509 *x509);
int
(*store_key)(BYTE *p, DWORD cbPk, wchar_t * container);
int
(*store_cert)(BYTE *cert, DWORD len, wchar_t * container);
void
(*list_creds)(void);
int
(*rsa_to_keyblob)(int keybits, RSA *key, BYTE **ppk, DWORD *pcbPk);
void
(*free)(void *);
} KCAPluginExports;
#define KCAPluginExportsMagic 0xd341f4a0
#ifdef KCAEXPORTS_C
#define KCAEXP KHMEXP_EXP
#else
#define KCAEXP KHMEXP_IMP
#endif
KCAEXP int KHMAPI
get_plugin_exports(KCAPluginExports * e);