diff --git a/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod b/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod index a12b4abe4d0d3305a3142208f027cc984da69999..6a9292843ee0535819e14d039819bd00bfd3e8d4 100644 --- a/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod +++ b/lib/modules/Standards.pmod/PKCS.pmod/RSA.pmod @@ -16,18 +16,24 @@ import Standards.ASN1.Types; string public_key(object rsa) { return asn1_sequence(Array.map( - ({ rsa->n, rsa->e }), + ({ rsa->get_n(), rsa->get_e() }), asn1_integer))->get_der(); } /* Create a DER-coded RSAPrivateKey structure */ string private_key(object rsa) { + object n = rsa->get_n(); + object e = rsa->get_e(); + object d = rsa->get_d(); + object p = rsa->get_p(); + object q = rsa->get_q(); + return asn1_sequence(Array.map( - ({ 0, rsa->n, rsa->e, rsa->d, - rsa->p, rsa->q, - rsa->d % (rsa->p - 1), rsa->d % (rsa->q -1), - rsa->q->invert(rsa->p) % rsa->p + ({ 0, n, e, d, + p, q, + d % (p - 1), d % (q - 1), + q->invert(p) % p }), asn1_integer))->get_der(); }