Import of old SSLeay release: SSLeay 0.9.0b
[openssl.git] / perl / openssl_x509.xs
diff --git a/perl/openssl_x509.xs b/perl/openssl_x509.xs
new file mode 100644 (file)
index 0000000..67633ad
--- /dev/null
@@ -0,0 +1,74 @@
+#include "p5SSLeay.h"
+
+MODULE =  SSLeay::X509 PACKAGE = SSLeay::X509  PREFIX = p5_X509_
+
+PROTOTYPES: ENABLE
+VERSIONCHECK: DISABLE
+
+void
+p5_X509_new(void )
+       PREINIT:
+               X509 *x509;
+               SV *arg;
+       PPCODE:
+               pr_name("p5_X509_new");
+               EXTEND(sp,1);
+               PUSHs(sv_newmortal());
+               x509=X509_new();
+               sv_setref_pv(ST(0),"SSLeay::X509",(void *)x509);
+
+char *
+p5_X509_get_subject_name(x509)
+       X509 *x509;
+       PREINIT:
+               char *p;
+               X509_NAME *name;
+               char buf[1024];
+               int i;
+       CODE:
+               name=X509_get_subject_name(x509);
+               X509_NAME_oneline(name,buf,sizeof(buf));
+               p= &(buf[0]);
+               RETVAL=p;
+       OUTPUT:
+               RETVAL
+
+char *
+p5_X509_get_issuer_name(x509)
+       X509 *x509;
+       PREINIT:
+               char *p;
+               X509_NAME *name;
+               char buf[1024];
+               int i;
+       CODE:
+               name=X509_get_issuer_name(x509);
+               X509_NAME_oneline(name,buf,sizeof(buf));
+               p= &(buf[0]);
+               RETVAL=p;
+       OUTPUT:
+               RETVAL
+
+int
+p5_X509_get_version(x509)
+       X509 *x509;
+       CODE:
+               RETVAL=X509_get_version(x509);
+       OUTPUT:
+               RETVAL
+
+BIGNUM *
+p5_X509_get_serialNumber(x509)
+       X509 *x509;
+       CODE:
+               RETVAL=ASN1_INTEGER_to_BN(X509_get_serialNumber(x509),NULL);
+       OUTPUT:
+               RETVAL
+
+void
+p5_X509_DESTROY(x509)
+       X509 *x509;
+       CODE:
+       pr_name("p5_X509_DESTROY");
+       X509_free(x509);
+