From 7c390cd3c8d93a8fb5f1a769fa61c59c0bf9bdd0 Mon Sep 17 00:00:00 2001
From: Victor Wagner <vitus@wagner.pp.ru>
Date: Thu, 5 Jun 2014 00:38:12 +0400
Subject: [PATCH] Removed x509 stuff from pkey.py and placed into separate file

---
 ctypescrypto/pkey.py | 30 --------------------
 ctypescrypto/x509.py | 65 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 65 insertions(+), 30 deletions(-)
 create mode 100644 ctypescrypto/x509.py

diff --git a/ctypescrypto/pkey.py b/ctypescrypto/pkey.py
index 63bdfd8..d5e09ce 100644
--- a/ctypescrypto/pkey.py
+++ b/ctypescrypto/pkey.py
@@ -119,33 +119,3 @@ class PKey:
 		libcrypto.EVP_PKEY_CTX_free(ctx)
 		return PKey(key,True)
 			
-class X509:
-	def __init__(self,ptr):
-		self.cert = ptr
-	def __del__(self):
-		libcrypto.X509_free(self.cert)
-	def __str__(self):
-		""" Returns der string of the certificate """
-	def pubkey(self):
-		""" Returns EVP PKEy object of certificate public key"""
-		return PKey(libcrypto.X509_get_pubkey(self.cert,False)
-	def verify(self,key):	
-		""" Verify self on given issuer key """
-	def frompem(s):
-		""" Create X509 object from pem string """
-	def fromder(s):
-		""" Create X509 object from der string """
-
-class Verifier:
-	def __init__(self,filename):
-	
-	def verify_cert(self,cert):
-
-class Signer:
-	def __init__(self,key):
-		self.key = key
-	def sign(self,digest):
-		if not self.key.cansign:
-			raise ValueError("Current PKey doesn't contain private part")
-	def verify(self,signature,digest):
-
diff --git a/ctypescrypto/x509.py b/ctypescrypto/x509.py
new file mode 100644
index 0000000..28c587c
--- /dev/null
+++ b/ctypescrypto/x509.py
@@ -0,0 +1,65 @@
+from ctypes import c_void_p
+from ctypescrypto.bio import Membio
+from ctypescrypto.exception import LibCryptoError
+from crypescrypto import libcrypto
+
+class X509Name:
+	def __init__(self,ptr):
+		self.ptr=ptr
+	def __del__(self):
+		libcrypto.X509_NAME_free(self.ptr)
+	def __str__(self):
+
+	def __len__(self):
+		return libcrypto.X509_NAME_entry_count(self.ptr)
+
+	def __getattr__(self,key):
+	  
+	def __setattr__(self,key,val):
+
+class X509_extlist:
+	def __init__(self,ptr):
+		self.ptr=ptr
+	def __del__(self):
+		libcrypto.X509_NAME_free(self.ptr)
+	def __str__(self):
+
+	def __len__(self):
+		return libcrypto.X509_NAME_entry_count(self.ptr)
+
+	def __getattr__(self,key):
+	  
+	def __setattr__(self,key,val):
+
+
+	
+
+
+class X509:
+	def __init__(self,ptr):
+		self.cert = ptr
+	def __del__(self):
+		libcrypto.X509_free(self.cert)
+	def __str__(self):
+		""" Returns der string of the certificate """
+	def pubkey(self):
+		""" Returns EVP PKEy object of certificate public key"""
+		return PKey(libcrypto.X509_get_pubkey(self.cert,False)
+	def verify(self,key):	
+		""" Verify self on given issuer key """
+	def frompem(s):
+		""" Create X509 object from pem string """
+	def fromder(s):
+		""" Create X509 object from der string """
+	def subject(self):
+		return X509Name(libcrypto.X509_get_subject_name(self.cert))
+	def issuer(self):
+		return X509Name(libcrypto.X509_get_issuer_name(self.cert))
+	def serial(self):
+		return
+
+	def startDate(self):
+
+	def endDate(self);
+
+	def extensions(self):
-- 
2.39.5