blob: dc5e52ec3a9dc10f851dd748cef806fc4c17e01d [file] [log] [blame]
/*
* pkey.h
*
* Copyright (C) AB Strakt
* Copyright (C) Jean-Paul Calderone
* See LICENSE for details.
*
* Export pkey functions and data structure.
* See the file RATIONALE for a short explanation of why this module was written.
*
*/
#ifndef PyOpenSSL_crypto_PKEY_H_
#define PyOpenSSL_crypto_PKEY_H_
extern int init_crypto_pkey (PyObject *);
extern PyTypeObject crypto_PKey_Type;
#define crypto_PKey_Check(v) ((v)->ob_type == &crypto_PKey_Type)
typedef struct {
PyObject_HEAD
/*
* A pointer to the underlying OpenSSL structure.
*/
EVP_PKEY *pkey;
/*
* A flag indicating the underlying pkey object has no private parts (so it
* can't sign, for example). This is a bit of a temporary hack.
* Public-only should be represented as a different type. -exarkun
*/
int only_public;
/*
* A flag indicating whether the underlying pkey object has no meaningful
* data in it whatsoever. This is a temporary hack. It should be
* impossible to create PKeys in an unusable state. -exarkun
*/
int initialized;
/*
* A flag indicating whether pkey will be freed when this object is freed.
*/
int dealloc;
} crypto_PKeyObj;
#define crypto_TYPE_RSA EVP_PKEY_RSA
#define crypto_TYPE_DSA EVP_PKEY_DSA
#endif