RSAPrivateKeyToXmlDoc (String function)

From m204wiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Convert BER encoded RSA private key to XML (String class)

[Introduced in Sirius Mods 8.0]

RSAPrivateKeyToXmlDoc converts a string (Longstring) that contains an RSA-generated private key to an XmlDoc. DER (Distinguished Encoding Rules), a subset of BER (Basic Encoding Rules, provide a way to uniquely encode an Abstract Syntax Notation One (ASN.1) type value as a string of eight-bit octets.

Syntax

%doc = string:RSAPrivateKeyToXmlDoc Throws InvalidBerData

Syntax terms

%doc An XmlDoc object variable to contain the decoded value of the method object, string.
string A DER encoded string that contains the contents of a digital certificate.

Usage notes

  • Prior to version 7.7 of Model 204, input to this method that created any element in the result XmlDoc with a text child whose length exceeded 650 characters produced an error. An example of such input is a 4096-bit key (which requires 1024 hex characters). As of version 7.7, the lengths of created text nodes are not restricted.
  • RSAPrivateKeyToXmlDoc is very similar to DerToXmlDoc, except that RSAPrivateKeyToXmlDoc understands the semantics of the private key tags, so it provides more meaningful XML element names.
  • RSAPrivateKeyToXmlDoc is a complete implementation of the PKCS standards for private key syntax.
  • Currently, no method is available to produce a DER stream from an XmlDoc nor to validate the signature on a certificate.

Examples

In the following example, the PemToString method loads Longstring %ls with the contents of an RSA private key. RSAPrivateKeyToXmlDoc then converts the Longstring to an XmlDoc whose contents are printed:

... text to %sl = new raw -----BEGIN RSA PRIVATE KEY----- MIIEogIBAAKCAQEAm6TwmSXt4+lyrhwy9SBq2LVjdTeJ5kUbU9jzmBCfw/NuC1tX YAAdc0UG5DDJYPHkWkYa7+z50SYzmoxKI8PfCLyxSOPeVW9CEhRSyiIIlyjQikIK a0YMeOXVetGiutl/y346yQYltkbQXb1SOogTg07fTRs7NWcQ4Rrcd6DEnSkrHxbv T04Z0MwoSojA+NRyBCMpa+w+R0dzrBNZIT11WOccecYjEyuPSS2ydcdgr/Rp4WKC UHmRulXWQjhEjwqFPRG4f8BkYJGr8lN262M4ti4Z11KV/lYA/lEpYUkmCaY936p4 IoVoQy8GFn7mj50sxwSa446bTvKlVPsySMDK2wIBAwKCAQAZ8NLEMPz7UZMdBLMo ... aQmxZUwUo7em8Ci6dX17AoGAcmpQ5AUj5vMdRnOmiIhLM+jgbbQjBD+52hwbkkIn sZ00cQ5asvdrHt3ziIqN7RMu5okuwdFTdk5IGHTA43qykel0e7wxwADI7qybJXWF rsIve5XyKCD55gAM4W8y4+CLkCv6dPwmkTq4vfdaYr0/NPIvigzUq0NEXFVPJfQc GncCgYEAlFIEKq0mVWLBtZRwNjehKOaWGkVVHJnoWqlBngfamQkOiGvWScQ0MVbw K3U00KpuNHRF5RVy035uoU2tnQDLyG+RmUO7j2+t90MOmgXqiZlTz08uf/fQaprd NzpmjANA/9cT3rwHD31LsjaDXASM5IW0q7h+vhvVLtVkDzDnW5w= -----END RSA PRIVATE KEY----- end text %ls = %sl:pemToString('RSA PRIVATE KEY') %ls:RSAPrivateKeyToXmlDoc:print ...

The abridged result is shown below:

<RSAPrivateKey> <version>0</version><modulus>196482721346 ... ...685825059547</modulus> <publicExponent>3</publicExponent> <privateExponent>32747120224474 ... ...832238758867</privateExponent> <prime1>163032211406922467 ... ...063864355897</prime1> <primes>120517730607 ... ...628528150451</primes> <exponent1>108688140937 ... ...709242903931</exponent1> <exponent2>803451537383 ... ...419018766967</exponent2> <coefficient>104154110092 ... ...977615354780</coefficient> </RSAPrivateKey>

See also

String methods:

Stringlist methods:

System methods:

Socket methods:

Background information: