| |
| datum T_DATUM |
| EVP_MD_CTX * T_MD_CTX |
| EVP_CIPHER_CTX * T_CIPHER_CTX |
| BIGNUM * T_BIGNUM |
| SSL_METHOD * T_SSL_METHOD |
| SSL_CTX * T_SSL_CTX |
| SSL_CIPHER * T_SSL_CIPHER |
| SSL * T_SSL |
| BIO * T_BIO |
| X509 * T_X509 |
| |
| INPUT |
| T_DATUM |
| $var.dptr=SvPV($arg,$var.dsize); |
| T_MD_CTX |
| if (sv_derived_from($arg, \"OpenSSL::MD\")) { |
| IV tmp = SvIV((SV*)SvRV($arg)); |
| $var = (EVP_MD_CTX *) tmp; |
| } |
| else |
| croak(\"$var is not of type OpenSSL::MD\") |
| T_CIPHER_CTX |
| if (sv_derived_from($arg, \"OpenSSL::Cipher\")) { |
| IV tmp = SvIV((SV*)SvRV($arg)); |
| $var = (EVP_CIPHER_CTX *) tmp; |
| } |
| else |
| croak(\"$var is not of type OpenSSL::Cipher\") |
| T_BIGNUM |
| sv_to_BIGNUM(&($var),$arg,\"$var is not of type OpenSSL::MD, int or string\") |
| T_SSL_METHOD |
| if (sv_derived_from($arg, \"OpenSSL::SSL::METHOD\")) { |
| IV tmp = SvIV((SV*)SvRV($arg)); |
| $var = (SSL_METHOD *) tmp; |
| } |
| else |
| croak(\"$var is not of type OpenSSL::SSL::METHOD\") |
| T_SSL_CTX |
| if (sv_derived_from($arg, \"OpenSSL::SSL::CTX\")) { |
| IV tmp = SvIV((SV*)SvRV($arg)); |
| $var = (SSL_CTX *) tmp; |
| } |
| else |
| croak(\"$var is not of type OpenSSL::SSL::CTX\") |
| T_SSL_CIPHER |
| if (sv_derived_from($arg, \"OpenSSL::SSL::CIPHER\")) { |
| IV tmp = SvIV((SV*)SvRV($arg)); |
| $var = (SSL_CIPHER *) tmp; |
| } |
| else |
| croak(\"$var is not of type OpenSSL::SSL::CIPHER\") |
| T_SSL |
| if (sv_derived_from($arg, \"OpenSSL::SSL\")) { |
| IV tmp = SvIV((SV*)SvRV($arg)); |
| $var = (SSL *) tmp; |
| } |
| else |
| croak(\"$var is not of type OpenSSL::SSL\") |
| T_BIO |
| if (sv_derived_from($arg, \"OpenSSL::BIO\")) { |
| IV tmp = SvIV((SV*)SvRV($arg)); |
| $var = (BIO *) tmp; |
| } |
| else |
| croak(\"$var is not of type OpenSSL::BIO\") |
| T_X509 |
| if (sv_derived_from($arg, \"OpenSSL::X509\")) { |
| IV tmp = SvIV((SV*)SvRV($arg)); |
| $var = (X509 *) tmp; |
| } |
| else |
| croak(\"$var is not of type OpenSSL::X509\") |
| OUTPUT |
| T_DATUM |
| sv_setpvn($arg,$var.dptr,$var.dsize); |
| T_MD_CTX |
| sv_setref_pv($arg, \"OpenSSL::MD\", (void*)$var); |
| T_CIPHER_CTX |
| sv_setref_pv($arg, \"OpenSSL::Cipher\", (void*)$var); |
| T_BIGNUM |
| sv_setref_pv($arg, \"OpenSSL::BN\", (void*)$var); |
| T_SSL_METHOD |
| sv_setref_pv($arg, \"OpenSSL::SSL::METHOD\", (void*)$var); |
| T_SSL_CTX |
| sv_setref_pv($arg, \"OpenSSL::SSL::CTX\", (void*)$var); |
| T_SSL_CIPHER |
| sv_setref_pv($arg, \"OpenSSL::SSL::CIPHER\", (void*)$var); |
| T_SSL |
| sv_setref_pv($arg, \"OpenSSL::SSL\", (void*)$var); |
| T_BIO |
| sv_setref_pv($arg, \"OpenSSL::BIO\", (void*)$var); |
| T_X509 |
| sv_setref_pv($arg, \"OpenSSL::X509\", (void*)$var); |
| |
| |