/* * 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