diff --git a/lib/modules/Tools.pmod/X509.pmod b/lib/modules/Tools.pmod/X509.pmod index 25c631de8c7c251f58c84edc3629ffd9f290b574..a6fbc8edcd3ef326b385904312aaac2a329a83bf 100644 --- a/lib/modules/Tools.pmod/X509.pmod +++ b/lib/modules/Tools.pmod/X509.pmod @@ -53,8 +53,7 @@ object make_tbs(object issuer, object algorithm, keyinfo }) )); } -#if 0 -string make_selfsigned_dss_certificate(object dss, int ttl, object name, +string make_selfsigned_dsa_certificate(object dsa, int ttl, array name, array|void extensions) { object serial = asn1_integer(1); /* Hard coded serial number */ @@ -66,20 +65,21 @@ string make_selfsigned_dss_certificate(object dss, int ttl, object name, object keyinfo = asn1_sequence( ({ /* Use an identifier with parameters */ - DSA.dsa_algorithm_identifier(dsa), - asn1_bit_string(DSA.dsa_public_key(dsa)) }) ); + DSA.algorithm_identifier(dsa), + asn1_bit_string(DSA.public_key(dsa)) }) ); - object tbs = make_tbs(name, signature_algorithm, - name, keyinfo, + object dn = Certificate.build_distinguished_name(@name); + + object tbs = make_tbs(dn, signature_algorithm, + dn, keyinfo, serial, ttl, extensions); return asn1_sequence( ({ tbs, - asn1_sequence( ({ signature_algorithm }) ); + asn1_sequence( ({ signature_algorithm }) ), asn1_bit_string(dsa ->sign_ssl(tbs->get_der())) }))->get_der(); } -#endif string rsa_sign_digest(object rsa, object digest_id, string digest) { @@ -104,7 +104,7 @@ string make_selfsigned_rsa_certificate(object rsa, int ttl, array name, object keyinfo = asn1_sequence( ({ asn1_sequence( ({ Identifiers.rsa_id, asn1_null() }) ), - asn1_bit_string(RSA.rsa_public_key(rsa)) }) ); + asn1_bit_string(RSA.public_key(rsa)) }) ); object dn = Certificate.build_distinguished_name(@name);