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();
 }