ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/OpenSSL/OpenSSL.xs
(Generate patch)

Comparing OpenSSL/OpenSSL.xs (file contents):
Revision 1.2 by root, Sat Oct 27 02:40:45 2001 UTC vs.
Revision 1.6 by root, Sat Oct 27 02:55:31 2001 UTC

53#define GEN_IO(type,class) \ 53#define GEN_IO(type,class) \
54 GEN_INPUT(type,class) \ 54 GEN_INPUT(type,class) \
55 GEN_OUTPUT(type,class) 55 GEN_OUTPUT(type,class)
56 56
57 57
58 GEN_IO(X509,"OpenSSL::X509")
59 GEN_IO(X509_CRL,"OpenSSL::CRL")
60 GEN_IO(X509_NAME, "OpenSSL::Name")
61 GEN_IO(PKCS12, "OpenSSL::PKCS12") 58 GEN_IO(PKCS12, "OpenSSL::PKCS12")
62 GEN_IO(PKCS7, "OpenSSL::PKCS7") 59 GEN_IO(PKCS7, "OpenSSL::PKCS7")
63 GEN_IO(RSA, "OpenSSL::RSA") 60 GEN_IO(RSA, "OpenSSL::RSA")
64 GEN_IO(EVP_MD_CTX, "OpenSSL::Digest") 61 GEN_IO(EVP_MD_CTX, "OpenSSL::Digest")
65 GEN_IO(EVP_CIPHER_CTX, "OpenSSL::Cipher") 62 GEN_IO(EVP_CIPHER_CTX, "OpenSSL::Cipher")
66 63
67typedef X509 *OpenSSL__X509; 64typedef X509 *OpenSSL__X509;
65typedef X509_CRL *OpenSSL__CRL;
66typedef X509_NAME *OpenSSL__Name;
68 67
69static inline SV* output_ASN1_INTEGER(ASN1_INTEGER *ai, SV *sv) 68static inline SV* output_ASN1_INTEGER(ASN1_INTEGER *ai, SV *sv)
70{ 69{
71 if(!ai) 70 if(!ai)
72 croak("got 0-ptr"); 71 croak("got 0-ptr");
741 740
742MODULE = OpenSSL PACKAGE = OpenSSL::Name 741MODULE = OpenSSL PACKAGE = OpenSSL::Name
743 742
744PROTOTYPES: ENABLE 743PROTOTYPES: ENABLE
745 744
746void 745OpenSSL::Name
747new_name() 746new_name()
748 PREINIT:
749 X509_NAME *name;
750 PPCODE: 747 CODE:
751 if(!(name = X509_NAME_new())) { 748 if(!(RETVAL = X509_NAME_new())) {
752 croak("X509_NAME_new"); 749 croak("X509_NAME_new");
753 } 750 }
754 EXTEND(sp, 1); 751 OUTPUT:
755 PUSHs(sv_newmortal()); 752 RETVAL
756 sv_setref_pv(ST(0), "OpenSSL::Name", (void *) name);
757 753
758 754
759void 755void
760add(name, key, string) 756add(name, key, string)
761 X509_NAME *name 757 OpenSSL::Name name
762 SV *key 758 SV *key
763 SV *string 759 SV *string
764 PREINIT: 760 PREINIT:
765 STRLEN l, kl; 761 STRLEN l, kl;
766 char *p, *k; 762 char *p, *k;
776 if(!ok) 772 if(!ok)
777 croak("X509_NAME_add_entry_by_*: %s", ssl_error()); 773 croak("X509_NAME_add_entry_by_*: %s", ssl_error());
778 774
779IV 775IV
780count(name) 776count(name)
781 X509_NAME *name 777 OpenSSL::Name name
782 CODE: 778 CODE:
783 RETVAL = X509_NAME_entry_count(name); 779 RETVAL = X509_NAME_entry_count(name);
784 OUTPUT: 780 OUTPUT:
785 RETVAL 781 RETVAL
786 782
787void 783void
788getall(name) 784getall(name)
789 X509_NAME *name 785 OpenSSL::Name name
790 PREINIT: 786 PREINIT:
791 int cnt, i; 787 int cnt, i;
792 X509_NAME_ENTRY *e; 788 X509_NAME_ENTRY *e;
793 int nid; 789 int nid;
794 ASN1_STRING *s; 790 ASN1_STRING *s;
809 805
810 806
811 807
812void 808void
813DESTROY(name) 809DESTROY(name)
814 X509_NAME *name 810 OpenSSL::Name name
815 CODE: 811 CODE:
816 if(name) { 812 if(name) {
817 XD("X509_NAME_free(%p)\n", name); 813 XD("X509_NAME_free(%p)\n", name);
818 X509_NAME_free(name); 814 X509_NAME_free(name);
819 } 815 }
902 ERR_load_DSA_strings(); 898 ERR_load_DSA_strings();
903 ERR_load_RSA_strings(); 899 ERR_load_RSA_strings();
904} 900}
905 901
906 902
907void 903OpenSSL::X509
908new_X509() 904new_X509()
909 PREINIT: 905 CODE:
910 X509 *x509;
911 PPCODE:
912 if((x509=X509_new()) == NULL) 906 if ((RETVAL = X509_new ()) == NULL)
913 croak("X509_new"); 907 croak("X509_new");
908
914 if(!X509_set_version(x509, 2)) { 909 if (!X509_set_version (RETVAL, 2))
915 X509_free(x509); 910 {
911 X509_free (RETVAL);
916 croak("X509_set_version"); 912 croak ("X509_set_version");
917 } 913 }
914
918 ASN1_INTEGER_set(X509_get_serialNumber(x509),0L); 915 ASN1_INTEGER_set (X509_get_serialNumber (RETVAL), 0L);
919 EXTEND(sp, 1); 916 OUTPUT:
920 PUSHs(sv_newmortal()); 917 RETVAL
921 sv_setref_pv(ST(0), "OpenSSL::X509", (void *) x509);
922 918
923 919
924void 920void
925new_from_string(thing) 921new_from_string(thing)
926 SV *thing 922 SV *thing
927 ALIAS: 923 ALIAS:
928 new_from_file = 1 924 new_from_file = 1
929 PREINIT: 925 PREINIT:
930 BIO *bio; 926 BIO *bio;
931 X509 *x509; 927 X509 *x509;
932 STRLEN l; 928 STRLEN l;
933 char *p, *q = 0; 929 char *p, *q = 0;
934 PPCODE: 930 PPCODE:
935 p = SvPV(thing, l); 931 p = SvPV (thing, l);
936 if(ix == 1) { 932 if(ix == 1) {
937 bio = BIO_new_file(p, "r"); 933 bio = BIO_new_file(p, "r");
938 } else { 934 } else {
939 bio = BIO_new_mem_buf (p, l); 935 bio = BIO_new_mem_buf (p, l);
940 } 936 }
954DESTROY(x509) 950DESTROY(x509)
955 OpenSSL::X509 x509 951 OpenSSL::X509 x509
956 CODE: 952 CODE:
957 if (x509) { 953 if (x509) {
958 XD("X509_free(%p)\n", x509); 954 XD("X509_free(%p)\n", x509);
959 X509_free(x509); 955 X509_free (x509);
960 x509 = 0; 956 x509 = 0;
961 } 957 }
962 958
963 959
964char * 960char *
974 RETVAL = dofp(x509, mds[ix]); 970 RETVAL = dofp(x509, mds[ix]);
975 OUTPUT: 971 OUTPUT:
976 RETVAL 972 RETVAL
977 973
978 974
979X509_NAME * 975OpenSSL::Name
980subject(x509) 976subject(x509)
981 OpenSSL::X509 x509 977 OpenSSL::X509 x509
982 CODE: 978 CODE:
983 RETVAL = X509_get_subject_name(x509); 979 RETVAL = X509_get_subject_name(x509);
984 OUTPUT: 980 OUTPUT:
985 RETVAL 981 RETVAL
986 982
987X509_NAME * 983OpenSSL::Name
988issuer(x509) 984issuer(x509)
989 OpenSSL::X509 x509 985 OpenSSL::X509 x509
990 CODE: 986 CODE:
991 RETVAL = X509_get_issuer_name(x509); 987 RETVAL = X509_get_issuer_name(x509);
992 OUTPUT: 988 OUTPUT:
1092OUTPUT: 1088OUTPUT:
1093 RETVAL 1089 RETVAL
1094 1090
1095void 1091void
1096set_issuer(x509,name) 1092set_issuer(x509,name)
1097 X509 *x509 1093 OpenSSL::X509 x509
1098 X509_NAME *name 1094 OpenSSL::Name name
1099 CODE: 1095 CODE:
1100 X509_set_issuer_name(x509, X509_NAME_dup(name)); 1096 X509_set_issuer_name(x509, X509_NAME_dup(name));
1101 1097
1102void 1098void
1103set_subject(x509,name) 1099set_subject(x509,name)
1104 X509 *x509 1100 OpenSSL::X509 x509
1105 X509_NAME *name 1101 OpenSSL::Name name
1106 CODE: 1102 CODE:
1107 X509_set_subject_name(x509, X509_NAME_dup(name)); 1103 X509_set_subject_name(x509, X509_NAME_dup(name));
1108 1104
1109SV * 1105SV *
1110errstring(x509) 1106errstring(x509)
1639 } 1635 }
1640 1636
1641 1637
1642MODULE = OpenSSL PACKAGE = OpenSSL::CRL 1638MODULE = OpenSSL PACKAGE = OpenSSL::CRL
1643 1639
1644void 1640OpenSSL::CRL
1645new_from_string(thing) 1641new_from_string(thing)
1646 SV *thing 1642 SV *thing
1647 ALIAS: 1643 ALIAS:
1648 new_from_file = 1 1644 new_from_file = 1
1649 PREINIT: 1645 PREINIT:
1650 BIO *bio; 1646 BIO *bio;
1651 X509_CRL *crl;
1652 STRLEN l; 1647 STRLEN l;
1653 char *p, *q = 0; 1648 char *p, *q = 0;
1654 PPCODE: 1649 CODE:
1655 p = SvPV(thing, l); 1650 p = SvPV(thing, l);
1656 if(ix == 1) { 1651 if(ix == 1) {
1657 bio = BIO_new_file(p, "r"); 1652 bio = BIO_new_file(p, "r");
1658 } else { 1653 } else {
1659 bio = BIO_new_mem_buf (p, l); 1654 bio = BIO_new_mem_buf (p, l);
1660 } 1655 }
1661 if(!bio) 1656 if(!bio)
1662 croak(ssl_error()); 1657 croak(ssl_error());
1663 1658
1664 crl = PEM_read_bio_X509_CRL (bio, 0, 0, 0); 1659 RETVAL = PEM_read_bio_X509_CRL (bio, 0, 0, 0);
1665 BIO_free (bio); 1660 BIO_free (bio);
1666 if(!crl) 1661 if(!RETVAL)
1667 croak("PEM_read_bio_X509_CRL: %s", ssl_error()); 1662 croak("PEM_read_bio_X509_CRL: %s", ssl_error());
1668 1663
1669 EXTEND(sp, 1); 1664 OUTPUT:
1670 PUSHs(sv_newmortal()); 1665 RETVAL
1671 sv_setref_pv(ST(0), "OpenSSL::CRL", (void *) crl);
1672 1666
1673void 1667void
1674DESTROY(crl) 1668DESTROY(crl)
1675 X509_CRL *crl 1669 OpenSSL::CRL crl
1676 CODE: 1670 CODE:
1677 if (crl) { 1671 if (crl) {
1678 XD("X509_CRL_free (%p)\n", crl); 1672 XD("X509_CRL_free (%p)\n", crl);
1679 X509_CRL_free(crl); 1673 X509_CRL_free(crl);
1680 crl = 0; 1674 crl = 0;
1681 } 1675 }
1682 1676
1683SV* 1677SV*
1684info(crl) 1678info(crl)
1685 X509_CRL *crl 1679 OpenSSL::CRL crl
1686 PREINIT: 1680 PREINIT:
1687 BIO *bio; 1681 BIO *bio;
1688 CODE: 1682 CODE:
1689 bio = sv_bio_create(); 1683 bio = sv_bio_create();
1690 if(!X509_CRL_print(bio,crl)) { 1684 if(!X509_CRL_print(bio,crl)) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines