You sir deserve something special! I first made a php-script with the help of the example from the webservice-documentation. From this script i got end result which is useful in this case since I don't really have any clue what I'm doing :)
The result from the PHP-script was:
Signature: NQXhQ5mk8bNQl1BvRMJoCqp2gpyuywzfs7KRAKIFxFK4ujfJ78hCYVbrieYGgIQCQD7Wp2NZnAeZvWuws2BiP8c+4HMOIwMqIQKOBQvxhpM0q6TsPR0pkOr0IV1kLbkfzKVsXC71rGkEE4pMrIaCxJ1yVxM0cmxKh4vj9nUjYgiSAWzR76YdptHOwG99dGjXfiCTiqD7DGe8qnkW2U/DAo3F+CP+fX9DfgWxUhCr1MWk87ctbJnlxsl2C3+lJSVgpnRVJ3nJtHmWfqF/iflGUIJ4u333B1fIBzMLsY58lKyDRpT0UmCajQ9eGZNy9uKWR9ZnrkajG08tepnvEClboQ==
This is an encoded base64 signature-string btw..
Verify: 1
I achived the same result with the following code:
#!/usr/bin/perl use Crypt::OpenSSL::RSA; use MIME::Base64; Test_OpenSSL(); sub Test_OpenSSL { print "OpenSSL_Sign - Start\n"; my $signnature = OpenSSL_Sign("value1", "value2", "value3"); print "OpenSSL_Sign - Result: ".$signnature."\n"; print "OpenSSL_Sign - Done\n"; print "OpenSSL_Verify - Start\n"; my $verify = OpenSSL_Verify("value1", "value2", "value3", $signnat +ure); print "OpenSSL_Verify - Result: ".$verify."\n"; print "OpenSSL_Verify - Done\n"; } sub OpenSSL_Sign { my $param1 = $_[0]; my $param2 = $_[1]; my $param3 = $_[2]; # instead of having a function that reads the file to a string i j +ust declare a variabele with the content of the file just to make it +more clear.. my $private_key_string = qq^-----BEGIN RSA PRIVATE KEY----- MIIEpAIBAAKCAQEA1Hd90G9/IAvZleTi86cqb8ZdM6vzOsv/Fxs/OpaHYexKs+t2 rg+f/h7hiTakXvRhN1E+N1GZ2jXSCNKniqPKaamspIqGbbylBoDm353o6DULZi7N Vm/GG5+LJwZFwzTPFuH248k0sxwTjcioj0ho06yLWPvkUXiFQslHuno6g59hC5gC n9Lh89ULkSes/7BZTXtD1mVywEnvfdRIN8rH6Kbt+RlrYP+CzmENmdQ4jKEj7aYB Y3+qjsmL4D65De6OChb21i/iyhiPhdWez8+ulPRoinxMsbnWslgiWXifVueyplL8 wDDhx5yYXUwha3FYqXTSq0qk7ZsAET+ftoQ1OwIDAQABAoIBAQCu5wb9VSuzd83Q pTFnHo/Cn+sNpFmAZ3pAzT9Jva0JIXmFjyqNs3MjwMwtJnw9ZrO40/qBk30xsuiK Ns+RQ7BXN0RV12s+XvMC3Y4xO08GCNSvc4u5wh21k6r7nyBCx/BKiA20CmiFoXE/ YJXSDeuthPbZc9LKdopNJmET05bjzgkb7bK7n2bvi9hszjGp8K2RrVp/okUwX1ZP QlPTT9FMZJFRjFSh8Mt0AqfqubvCDR8fm8nzZsdgLmn4H1/1SIiA+qcJNj/J38r8 BbY8M8DIjc/xiopphc3L1BYA7B47mszbvSLcXa6B4NAxEG/rf480HnSpTqeeZ245 /KpNROsRAoGBAPq1AuRY4M1oz5gmzMpVJEO8IVFZtluIAXAjAwgd1Er0Vwt0kAqT bbiJo5nPuQT6guHzVDDOBKk9GUkKaL8e4aQ4dFnDG7APtJPjMJ1DZU32ZTtq6Ddp /kUVsHxlW6L4dfpthENGGWyYOgVsjnTGERkvJVlKksK/V4vgNAZDXzFFAoGBANjz zc9b+bUwmCReL4DPuA4UCZefXgLtNnGZvB6yh7SOjGy0eUDZFXrefcq7lnpNgkUk 43umXDcMZqw9vQkWLS5oSalFKZWgJuZGC3FakC6V0OACLOBtuKFKpmfkVJCZR2tW s68T9GzOqdh3eKWiDB91idhWq91MNbV/M/Ne0fR/AoGAQTg/tVmtuaIPhzxowCYg FgLmA/y7pNofzaU+D6l65bjkwBUlt6qcu4oK5mOUdUgaLl+Xwk6GBeTgJBEyKK4G 8yrAke1g0Y90YZiTuAWlX/++XBO2r1vCiwRWcjYH/cB3KJu+8aVVzdtYFLsl4Bj6 r7uFEtKElWcjhj7gKdTy+aUCgYBj2ChCoxCTm46ZRiNUg8Qv7nbPqc9pR2RD+b2C 3yTnKqdjq9cVyhJBnr2DnLtPA/bM/YIXuOM9jl5+LFegI+2dKu+jkCnoK3Fbjqbb fxNV7SrYvQeMLdLHoARfUcy9U11z/83n6CYYITA3aBxFFgPAQqaywoiL6vPY2Ha/ LUcw3wKBgQD5rd6CcJJxMJ46LoULYcsK69rgnEO5nivYDUiRvrlBkml0aRf8nF4x GGlIoweMgIbuH/Hvo0vt2+C7pntpR1EqAhSREcpbjGcl8eMhhQptK64arfZ9oebp 95scD2p0VbYkkxtto0gej+knHZfHL45mR0MZKawHZ+5XaLH4rPK1AA== -----END RSA PRIVATE KEY-----^; my $rsa_priv = Crypt::OpenSSL::RSA->new_private_key($private_key_s +tring); my $plaintext = $param1 . $param2 . $param3; my $signature = $rsa_priv->sign($plaintext); return encode_base64($signature); } sub OpenSSL_Verify { my $param1 = $_[0]; my $param2 = $_[1]; my $param3 = $_[2]; my $signature = $_[3]; # instead of having a function that reads the file to a string i j +ust declare a variabele with the content of the file just to make it +more clear.. my $public_key_string = qq^-----BEGIN PUBLIC KEY----- MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA1Hd90G9/IAvZleTi86cq b8ZdM6vzOsv/Fxs/OpaHYexKs+t2rg+f/h7hiTakXvRhN1E+N1GZ2jXSCNKniqPK aamspIqGbbylBoDm353o6DULZi7NVm/GG5+LJwZFwzTPFuH248k0sxwTjcioj0ho 06yLWPvkUXiFQslHuno6g59hC5gCn9Lh89ULkSes/7BZTXtD1mVywEnvfdRIN8rH 6Kbt+RlrYP+CzmENmdQ4jKEj7aYBY3+qjsmL4D65De6OChb21i/iyhiPhdWez8+u lPRoinxMsbnWslgiWXifVueyplL8wDDhx5yYXUwha3FYqXTSq0qk7ZsAET+ftoQ1 OwIDAQAB -----END PUBLIC KEY-----^; my $rsa_pub = Crypt::OpenSSL::RSA->new_public_key($public_key_stri +ng); my $plaintext = $param1 . $param2 . $param3; my $verify = $rsa_pub->verify($plaintext, decode_base64($signature +)); return $verify; }
This is just an example code which I've made as close as the original as as possible but ofc, with random-names and values of the parameters. I've worked over 45 hours in 4 days so I'm a bit tired..
Again, thanks for clarify the new_private_key and new_public_key funtions. The documentation on cpan was pretty much useless for a noob (on this topic) like me.
In reply to Re^2: Crypt::OpenSSL:RSA Questions
by martin87
in thread Crypt::OpenSSL:RSA Questions
by martin87
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |