aboutsummaryrefslogtreecommitdiffstats
path: root/src/_cffi_src/openssl/ct.py
diff options
context:
space:
mode:
authorAlex Gaynor <alex.gaynor@gmail.com>2017-03-22 09:26:08 -0400
committerPaul Kehrer <paul.l.kehrer@gmail.com>2017-03-22 09:26:08 -0400
commit42062cc8afa3446a7dde1c5dcbe6839b793b91b0 (patch)
treeaa97ab5b392fcca611ea4a0679ef5cfbd8c80cc9 /src/_cffi_src/openssl/ct.py
parentbca951ebd869cb6c911cd6bba52b2d798366b409 (diff)
downloadcryptography-42062cc8afa3446a7dde1c5dcbe6839b793b91b0.tar.gz
cryptography-42062cc8afa3446a7dde1c5dcbe6839b793b91b0.tar.bz2
cryptography-42062cc8afa3446a7dde1c5dcbe6839b793b91b0.zip
First pass at adding SCT bindings (#3471)
* First pass at adding bindings for CT functions. No conditionals yet. * add a stack typedef as well * Don't try to include this header if we're on an older OpenSSL * wire up the conditional stuff * bunch o' nonsense to get it to compile on old openssl * I hate libressl
Diffstat (limited to 'src/_cffi_src/openssl/ct.py')
-rw-r--r--src/_cffi_src/openssl/ct.py68
1 files changed, 68 insertions, 0 deletions
diff --git a/src/_cffi_src/openssl/ct.py b/src/_cffi_src/openssl/ct.py
new file mode 100644
index 00000000..eec6e1d7
--- /dev/null
+++ b/src/_cffi_src/openssl/ct.py
@@ -0,0 +1,68 @@
+# This file is dual licensed under the terms of the Apache License, Version
+# 2.0, and the BSD License. See the LICENSE file in the root of this repository
+# for complete details.
+
+from __future__ import absolute_import, division, print_function
+
+INCLUDES = """
+#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER && !defined(LIBRESSL_VERSION_NUMBER)
+#include <openssl/ct.h>
+
+typedef STACK_OF(SCT) Cryptography_STACK_OF_SCT;
+#endif
+"""
+
+TYPES = """
+static const long Cryptography_HAS_SCT;
+
+typedef enum {
+ SCT_VERSION_NOT_SET,
+ SCT_VERSION_V1
+} sct_version_t;
+
+typedef enum {
+ CT_LOG_ENTRY_TYPE_NOT_SET,
+ CT_LOG_ENTRY_TYPE_X509,
+ CT_LOG_ENTRY_TYPE_PRECERT
+} ct_log_entry_type_t;
+
+typedef ... SCT;
+typedef ... Cryptography_STACK_OF_SCT;
+"""
+
+FUNCTIONS = """
+"""
+
+MACROS = """
+sct_version_t SCT_get_version(const SCT *);
+
+ct_log_entry_type_t SCT_get_log_entry_type(const SCT *);
+
+size_t SCT_get0_log_id(const SCT *, unsigned char **);
+
+uint64_t SCT_get_timestamp(const SCT *);
+"""
+
+CUSTOMIZATIONS = """
+#if CRYPTOGRAPHY_OPENSSL_110_OR_GREATER && !defined(LIBRESSL_VERSION_NUMBER)
+static const long Cryptography_HAS_SCT = 1;
+#else
+static const long Cryptography_HAS_SCT = 0;
+
+typedef enum {
+ SCT_VERSION_NOT_SET,
+ SCT_VERSION_V1
+} sct_version_t;
+typedef enum {
+ CT_LOG_ENTRY_TYPE_NOT_SET,
+ CT_LOG_ENTRY_TYPE_X509,
+ CT_LOG_ENTRY_TYPE_PRECERT
+} ct_log_entry_type_t;
+typedef void SCT;
+
+sct_version_t (*SCT_get_version)(const SCT *) = NULL;
+ct_log_entry_type_t (*SCT_get_log_entry_type)(const SCT *) = NULL;
+size_t (*SCT_get0_log_id)(const SCT *, unsigned char **) = NULL;
+uint64_t (*SCT_get_timestamp)(const SCT *) = NULL;
+#endif
+"""