From: <iro...@us...> - 2004-02-16 05:01:46
|
Update of /cvsroot/perl-openssl/Crypt/OpenSSL/RSA In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10874 Modified Files: RSA.xs typemap Log Message: simplify things with the help of the typemap Index: RSA.xs =================================================================== RCS file: /cvsroot/perl-openssl/Crypt/OpenSSL/RSA/RSA.xs,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -d -r1.37 -r1.38 *** RSA.xs 16 Feb 2004 04:42:24 -0000 1.37 --- RSA.xs 16 Feb 2004 04:53:56 -0000 1.38 *************** *** 25,46 **** __FILE__, __LINE__, ERR_reason_error_string(ERR_get_error())); /* Free the RSA key, if there is one */ ! void free_RSA_key(SV* p_rsa) { ! rsaData* rsa; ! ! rsa = (rsaData*) SvIV(p_rsa); ! if (rsa->rsa) { ! RSA_free(rsa->rsa); } } ! RSA* get_RSA_key(SV* p_rsa) { ! rsaData* rsa; ! ! rsa = (rsaData*) (SvIV(SvRV(p_rsa))); ! if (!rsa->rsa) { croak("There is no key set"); --- 25,43 ---- __FILE__, __LINE__, ERR_reason_error_string(ERR_get_error())); + //FIXME - shouldn't there always be a key? /* Free the RSA key, if there is one */ ! void free_RSA_key(rsaData* p_rsa) { ! if (p_rsa->rsa) { ! RSA_free(p_rsa->rsa); ! p_rsa->rsa = NULL; } } ! //FIXME - shouldn't there always be a key? ! RSA* get_RSA_key(rsaData* p_rsa) { ! if (!p_rsa->rsa) { croak("There is no key set"); *************** *** 48,76 **** else { ! return rsa->rsa; } } ! int get_padding(SV* p_rsa) { ! return ((rsaData*) SvIV(SvRV(p_rsa)))->padding; } ! void set_padding(SV* p_rsa, int p_padding) { ! ((rsaData*) SvIV(SvRV(p_rsa)))->padding = p_padding; } ! int get_hash(SV* p_rsa) { ! return ((rsaData*) SvIV(SvRV(p_rsa)))->hashMode; } ! void set_hash(SV* p_rsa, int p_hashMode) { ! ((rsaData*) SvIV(SvRV(p_rsa)))->hashMode = p_hashMode; } ! char is_private(SV* p_rsa) { return(get_RSA_key(p_rsa)->d != NULL); --- 45,73 ---- else { ! return p_rsa->rsa; } } ! int get_padding(rsaData* p_rsa) { ! return p_rsa->padding; } ! void set_padding(rsaData* p_rsa, int p_padding) { ! p_rsa->padding = p_padding; } ! int get_hash(rsaData* p_rsa) { ! return p_rsa->hashMode; } ! void set_hash(rsaData* p_rsa, int p_hashMode) { ! p_rsa->hashMode = p_hashMode; } ! char is_private(rsaData* p_rsa) { return(get_RSA_key(p_rsa)->d != NULL); *************** *** 246,250 **** void _free_RSA_key(p_rsa) ! SV* p_rsa; CODE: free_RSA_key(p_rsa); --- 243,247 ---- void _free_RSA_key(p_rsa) ! rsaData* p_rsa; CODE: free_RSA_key(p_rsa); *************** *** 252,256 **** SV* get_private_key_string(p_rsa) ! SV* p_rsa; PREINIT: BIO* stringBIO; --- 249,253 ---- SV* get_private_key_string(p_rsa) ! rsaData* p_rsa; PREINIT: BIO* stringBIO; *************** *** 266,270 **** SV* get_public_key_string(p_rsa) ! SV* p_rsa; PREINIT: BIO* stringBIO; --- 263,267 ---- SV* get_public_key_string(p_rsa) ! rsaData* p_rsa; PREINIT: BIO* stringBIO; *************** *** 279,283 **** SV* get_public_key_x509_string(p_rsa) ! SV* p_rsa; PREINIT: BIO* stringBIO; --- 276,280 ---- SV* get_public_key_x509_string(p_rsa) ! rsaData* p_rsa; PREINIT: BIO* stringBIO; *************** *** 395,399 **** void _get_key_parameters(p_rsa) ! SV* p_rsa; PPCODE: { --- 392,396 ---- void _get_key_parameters(p_rsa) ! rsaData* p_rsa; PPCODE: { *************** *** 414,418 **** SV* encrypt(p_rsa, plaintext_SV, ...) ! SV* p_rsa; SV* plaintext_SV; PREINIT: --- 411,415 ---- SV* encrypt(p_rsa, plaintext_SV, ...) ! rsaData* p_rsa; SV* plaintext_SV; PREINIT: *************** *** 452,456 **** SV* decrypt(p_rsa, ciphertext_SV) ! SV* p_rsa; SV* ciphertext_SV; PREINIT: --- 449,453 ---- SV* decrypt(p_rsa, ciphertext_SV) ! rsaData* p_rsa; SV* ciphertext_SV; PREINIT: *************** *** 495,499 **** int size(p_rsa) ! SV* p_rsa; CODE: RETVAL = RSA_size(get_RSA_key(p_rsa)); --- 492,496 ---- int size(p_rsa) ! rsaData* p_rsa; CODE: RETVAL = RSA_size(get_RSA_key(p_rsa)); *************** *** 503,507 **** int check_key(p_rsa) ! SV* p_rsa; CODE: RETVAL = RSA_check_key(get_RSA_key(p_rsa)); --- 500,504 ---- int check_key(p_rsa) ! rsaData* p_rsa; CODE: RETVAL = RSA_check_key(get_RSA_key(p_rsa)); *************** *** 538,542 **** void use_md5_hash(p_rsa) ! SV* p_rsa; CODE: set_hash(p_rsa, NID_md5); --- 535,539 ---- void use_md5_hash(p_rsa) ! rsaData* p_rsa; CODE: set_hash(p_rsa, NID_md5); *************** *** 544,548 **** void use_sha1_hash(p_rsa) ! SV* p_rsa; CODE: set_hash(p_rsa, NID_sha1); --- 541,545 ---- void use_sha1_hash(p_rsa) ! rsaData* p_rsa; CODE: set_hash(p_rsa, NID_sha1); *************** *** 550,554 **** void use_ripemd160_hash(p_rsa) ! SV* p_rsa; CODE: set_hash(p_rsa, NID_ripemd160); --- 547,551 ---- void use_ripemd160_hash(p_rsa) ! rsaData* p_rsa; CODE: set_hash(p_rsa, NID_ripemd160); *************** *** 556,560 **** void use_no_padding(p_rsa) ! SV* p_rsa; CODE: set_padding(p_rsa, RSA_NO_PADDING); --- 553,557 ---- void use_no_padding(p_rsa) ! rsaData* p_rsa; CODE: set_padding(p_rsa, RSA_NO_PADDING); *************** *** 562,566 **** void use_pkcs1_padding(p_rsa) ! SV* p_rsa; CODE: set_padding(p_rsa, RSA_PKCS1_PADDING); --- 559,563 ---- void use_pkcs1_padding(p_rsa) ! rsaData* p_rsa; CODE: set_padding(p_rsa, RSA_PKCS1_PADDING); *************** *** 568,572 **** void use_pkcs1_oaep_padding(p_rsa) ! SV* p_rsa; CODE: set_padding(p_rsa, RSA_PKCS1_OAEP_PADDING); --- 565,569 ---- void use_pkcs1_oaep_padding(p_rsa) ! rsaData* p_rsa; CODE: set_padding(p_rsa, RSA_PKCS1_OAEP_PADDING); *************** *** 574,578 **** void use_sslv23_padding(p_rsa) ! SV* p_rsa; CODE: set_padding(p_rsa, RSA_SSLV23_PADDING); --- 571,575 ---- void use_sslv23_padding(p_rsa) ! rsaData* p_rsa; CODE: set_padding(p_rsa, RSA_SSLV23_PADDING); *************** *** 580,584 **** SV* sign(p_rsa, text_SV, ...) ! SV* p_rsa; SV* text_SV; PREINIT: --- 577,581 ---- SV* sign(p_rsa, text_SV, ...) ! rsaData* p_rsa; SV* text_SV; PREINIT: *************** *** 623,627 **** void verify(p_rsa, text_SV, sig_SV, ...) ! SV* p_rsa; SV* text_SV; SV* sig_SV; --- 620,624 ---- void verify(p_rsa, text_SV, sig_SV, ...) ! rsaData* p_rsa; SV* text_SV; SV* sig_SV; Index: typemap =================================================================== RCS file: /cvsroot/perl-openssl/Crypt/OpenSSL/RSA/typemap,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** typemap 22 Feb 2003 21:40:12 -0000 1.3 --- typemap 16 Feb 2004 04:53:57 -0000 1.4 *************** *** 1,16 **** TYPEMAP BIGNUM* T_PTR ! HV* RSA_HV INPUT ! RSA_HV ! if (! ( SvROK( $arg ) && sv_derived_from( $arg, PACKAGE_NAME ) ) ) ! { ! croak( \"scalar is not a \" PACKAGE_NAME \" object\" ); ! } ! if ( SvTYPE( $var = (HV *) SvRV($arg) ) != SVt_PVHV ) ! { ! croak( \"Passed scalar is not a hash reference\" ); ! } OUTPUT --- 1,10 ---- TYPEMAP BIGNUM* T_PTR ! rsaData* O_OBJECT INPUT ! O_OBJECT ! if( ! SvROK( $arg ) ) { croak( \"argument is not a ${type} object\" ); } ! $var = (${type}) SvIV( SvRV( $arg ) ); OUTPUT |