Branch: Tag:

2015-11-14

2015-11-14 12:42:54 by Henrik Grubbström (Grubba) <grubba@grubba.org>

Crypto.RSA: Cleaned up RSASSA-PSS API.

It is now possible to get a PSS signature object from an RSA state by
indexing it with "PSS". Eg

Crypto.RSA.State rsa = ...;
string(8bit) sign = rsa->PSS->pkcs_sign(message, hash);
int(0..1) ok = rsa->PSS->pkcs_verify(message, hash, sign);

Also adds a corresponding symbol "PKCS1_5" for the traditional (and
default) PKCS#1 1.5 style signatures.

18:    ".Requests.request": "predef::Protocols.X.Xlib.Display.blocking_request":1, "predef::Protocols.X.Xlib.Display.send_async_request":1,    "._Xlib": "predef::Protocols.X.Xlib.Display":1,    "7.2::dirname()": "cpp::":1, -  "::this_program": "predef::Crypto.DSA.State":1, "predef::Crypto.RSA.State":1, "predef::Sql.odbc.typed_result":1, +  "::this_program": "predef::Crypto.DSA.State":1, "predef::Sql.odbc.typed_result":1,    "ADT.CritBit.FloatTree.Iterator": "predef::ADT.CritBit.FloatTree":1,    "ADT.CritBit.IPv4Tree.Iterator": "predef::ADT.CritBit.IPv4Tree":1,    "ADT.CritBit.IntTree.Iterator": "predef::ADT.CritBit.IntTree":1,
246:    "SSL.connection": "predef::SSL.File.query_connection":1,    "SSL_null_with_null_null": "predef::SSL.Cipher.KeyExchangeNULL":1,    "Search.Database.MySQL": "predef::Search.Utils.ProfileEntry.get_database":1, -  "Sequence": "predef::Crypto.DSA.State.pkcs_algorithm_identifier":1, "predef::Crypto.DSA.State.pkcs_public_key":1, "predef::Crypto.DSA.State.pkcs_signature_algorithm_id":1, "predef::Crypto.ECC.Curve.ECDSA.pkcs_algorithm_identifier":1, "predef::Crypto.ECC.Curve.ECDSA.pkcs_public_key":1, "predef::Crypto.ECC.Curve.ECDSA.pkcs_signature_algorithm_id":1, "predef::Crypto.ECC.Curve.pkcs_algorithm_identifier":1, "predef::Crypto.RSA.State.pkcs_public_key":1, "predef::Crypto.RSA.State.pkcs_signature_algorithm_id":1, "predef::__builtin.Nettle.Sign.pkcs_algorithm_identifier":1, "predef::__builtin.Nettle.Sign.pkcs_public_key":1, "predef::__builtin.Nettle.Sign.pkcs_signature_algorithm_id":1, +  "Sequence": "predef::Crypto.DSA.State.pkcs_algorithm_identifier":1, "predef::Crypto.DSA.State.pkcs_public_key":1, "predef::Crypto.DSA.State.pkcs_signature_algorithm_id":1, "predef::Crypto.ECC.Curve.ECDSA.pkcs_algorithm_identifier":1, "predef::Crypto.ECC.Curve.ECDSA.pkcs_public_key":1, "predef::Crypto.ECC.Curve.ECDSA.pkcs_signature_algorithm_id":1, "predef::Crypto.ECC.Curve.pkcs_algorithm_identifier":1, "predef::Crypto.RSA.PKCS1_5State.pkcs_public_key":1, "predef::Crypto.RSA.PKCS1_5State.pkcs_signature_algorithm_id":1, "predef::__builtin.Nettle.Sign.pkcs_algorithm_identifier":1, "predef::__builtin.Nettle.Sign.pkcs_public_key":1, "predef::__builtin.Nettle.Sign.pkcs_signature_algorithm_id":1,    "Serialization.deserialize()": "lfun::_deserialize":1,    "Serializer.Serializable": "lfun::_deserialize":1, "lfun::_serialize":1,    "Serializer.Serializable()->_deserialize()": "lfun::_deserialize":1,    "Serializer.Serializable()->_serialize()": "lfun::_serialize":1,    "Serializer.deserialize()": "lfun::_deserialize":1,    "Serializer.serialize()": "lfun::_serialize":2, -  +  "Sign::State": "predef::Crypto.RSA.LowState":1,    "Social.Google.Plus()->people": "predef::Web.Api.Google.Plus.V1.People":1,    "Sql.big_typed_query": "predef::Mysql.SqlTable":1, "predef::Mysql.SqlTable.select":1,    "Sql.dsn": "predef::Odbc.odbc":2,
260:    "Sql.query": "predef::Mysql.SqlTable.Result.fetch":2,    "Standards.ASN1.Decode.constructed": "predef::Standards.ASN1.Decode.der_decode":1,    "Standards.ASN1.Sequence": "8.0::Tools.X509.verify_certificate_chain":2, "predef::Standards.X509.verify_certificate_chain":2, -  "Standards.PKCS.RSA.signatue_algorithm_id": "predef::Crypto.RSA.State.pkcs_signature_algorithm_id":1, +  "Standards.PKCS.RSA.signatue_algorithm_id": "predef::Crypto.RSA.PKCS1_5State.pkcs_signature_algorithm_id":1,    "Standards.PKCS.build_digestinfo()": "predef::__builtin.Nettle.Hash.pkcs_digest":1,    "State": "predef::Crypto.Sign.`()":2,    "Stdio.File.query_address": "7.8::SSL.sslfile.query_address":2,
511:    "resolveRefs()": "predef::Tools.AutoDoc.ProcessXML.postProcess":2,    "rsa": "predef::Standards.PKCS.DSA.build_private_key":1,    "ruleset.set_timezone": "predef::Calendar.Timezone":2, +  "salt_size()": "predef::Crypto.RSA.PSSState.pkcs_sign":2,    "search_order": "predef::Search.Query.execute":1,    "second.datetime": "predef::Calendar.YMD.datetime":1,    "seek": "7.8::Stdio.FILE.line_iterator":1,
696:   "predef::Crypto.ECC.Curve.pkcs_named_curve_id": "Identifier"   "predef::Crypto.MD5.crypt_hash": "crypt_md5()"   "predef::Crypto.NT.CryptContext.create": "CRYPT_VERIFYCONTEXT" - "predef::Crypto.RSA.State": "::this_program" - "predef::Crypto.RSA.State.pkcs_public_key": "Sequence" - "predef::Crypto.RSA.State.pkcs_signature_algorithm_id": "Sequence" "Standards.PKCS.RSA.signatue_algorithm_id" + "predef::Crypto.RSA.LowState": "Sign::State" + "predef::Crypto.RSA.PKCS1_5State.pkcs_public_key": "Sequence" + "predef::Crypto.RSA.PKCS1_5State.pkcs_signature_algorithm_id": "Sequence" "Standards.PKCS.RSA.signatue_algorithm_id" + "predef::Crypto.RSA.PSSState.pkcs_sign": "salt_size()"   "predef::Crypto.Sign.`()": "State"   "predef::Crypto.verify_crypt_md5": "bool"   "predef::Debug": "_Debug"