diff options
Diffstat (limited to 'crypto/openssl/perl/typemap')
-rw-r--r-- | crypto/openssl/perl/typemap | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/crypto/openssl/perl/typemap b/crypto/openssl/perl/typemap new file mode 100644 index 0000000..f67b598 --- /dev/null +++ b/crypto/openssl/perl/typemap @@ -0,0 +1,96 @@ + +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); + + |