AppendPrivateKeyInfo (Stringlist function): Difference between revisions
mNo edit summary |
m (→See also: add method to list) |
||
(37 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{Template:Stringlist:AppendPrivateKeyInfo subtitle}} | {{Template:Stringlist:AppendPrivateKeyInfo subtitle}} | ||
This [[Notation conventions for methods#Callable functions|callable]] method adds lines from the information section of an SSL private key to the end of a <var>Stringlist</var>. | This [[Notation conventions for methods#Callable functions|callable]] method adds lines from the information section of an SSL private key to the end of a <var>Stringlist</var>. | ||
Line 7: | Line 6: | ||
===Syntax terms=== | ===Syntax terms=== | ||
<table | <table> | ||
<tr><th>%number</th><td> | <tr><th>%number</th><td>An, optional, numeric variable that is set to zero if the function is a success. The possible return codes are described below in [[#Return codes|Return codes]]. </td></tr> | ||
<tr><th>sl</th> | |||
<td>A <var>Stringlist</var> object to receive the private key information.</td></tr> | |||
<tr><th>sl</th> | <tr><th>sl</th> | ||
<td> | <td>A <var>Stringlist</var> object that contains the base64 encoded text of an RSA private key.</td></tr> | ||
<tr><th><var>Password</var></th> | <tr><th><var>Password</var></th> | ||
<td>string</td></tr> | <td>This optional, [[Notation conventions for methods#Named parameters|name allowed]], parameter is a string that contains a password to decrypt the private key, if necessary.</td></tr> | ||
</table> | |||
===Return codes=== | |||
<table class="thJustBold"> | |||
<tr><th>0</th> | |||
<td>All is well.</td></tr> | |||
<tr><th>1</th> | |||
<td>Encrypted but no password specified.</td></tr> | |||
<tr><th>2</th> | |||
<td>Encrypted and wrong password specified.</td></tr> | |||
<tr><th>3</th> | |||
<td>Out of CCATEMP.</td></tr> | |||
<tr><th>5</th> | |||
<td><var>Stringlist</var> identifier missing.</td></tr> | |||
<tr><th>6</th> | |||
<td>Invalid <var>Stringlist</var> identifier.</td></tr> | |||
<tr><th>7</th> | |||
<td>Insufficient storage.</td></tr> | |||
<tr><th>10</th> | |||
<td>Input <var>Stringlist</var> identifier missing.</td></tr> | |||
<tr><th>11</th> | |||
<td>Invalid input <var>Stringlist</var> identifier.</td></tr> | |||
<tr><th>12</th> | |||
<td>Invalid input <var>Stringlist</var> data (not correctly base-64 encoded).</td></tr> | |||
<tr><th>13</th> | |||
<td>Invalid request/certificate (internal structure of certificate is not valid).</td></tr> | |||
</table> | </table> | ||
==Usage notes== | ==Usage notes== | ||
<ul> | |||
<li>The updated <var>Stringlist</var> contains an arbitrary amount of | |||
information in an arbitrary order. Each list item | |||
is in ID=value format. These are the possible IDs: | |||
<table class="thJustBold"> | |||
<tr><th>S.C</th> | |||
<td>Subject country</td></tr> | |||
<tr><th>S.S</th> | |||
<td>Subject state or province </td></tr> | |||
<tr><th>S.L</th> | |||
<td>Subject locality - city, town, village, etc. </td></tr> | |||
<tr><th>S.O</th> | |||
<td>Subject organization </td></tr> | |||
<tr><th>S.OU</th> | |||
<td>Subject organization unit </td></tr> | |||
<tr><th>S.CN</th> | |||
<td>Subject common name </td></tr> | |||
<tr><th>I.C</th> | |||
<td>Issuer country </td></tr> | |||
<tr><th>I.S</th> | |||
<td>Issuer state or province </td></tr> | |||
<tr><th>I.L</th> | |||
<td>Issuer locality: city, town, village, etc. </td></tr> | |||
<tr><th>I.O</th> | |||
<td>Issuer organization </td></tr> | |||
<tr><th>I.OU</th> | |||
<td>Issuer organization unit </td></tr> | |||
<tr><th>I.CN</th> | |||
<td>Issuer common name </td></tr> | |||
<tr><th>EFF</th> | |||
<td>Effective date in YYMMDDHHMISS format (GMT) </td></tr> | |||
<tr><th>EXP</th> | |||
<td>Expiration date in YYMMDDHHMISS format (GMT) </td></tr> | |||
<tr><th>ALG</th> | |||
<td>Key algorithm - currently always RSA </td></tr> | |||
<tr><th>N</th> | |||
<td>Public modulus in hexadecimal </td></tr> | |||
<tr><th>E</th> | |||
<td>Public exponent in hexadecimal </td></tr> | |||
</table> | |||
</li> | |||
</ul> | |||
==Examples== | ==Examples== | ||
In the following example, a private key is hard-coded into one <var>Stringlist</var>, then the information contained in the private key is extracted via <var>AppendPrivateKeyInfo</var> into another <var>Stringlist</var>: | |||
<p class="code">b | |||
%sl is object stringlist | |||
%pkey is object stringlist | |||
%sl = new | |||
%pkey = new | |||
text to %pkey 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 | |||
%sl:appendPrivateKeyInfo(%pkey) | |||
%sl:print | |||
end | |||
</p> | |||
The result is something like: | |||
<p class="output">ALG=RSA | |||
N=9BA4F09925EDE3E972AE1C32F5206AD8 ... A461AEFECF9D126339A8C4A23C3DF08B- | |||
CB148E3DE556F42121452CA22089728D08 ... 4D1B3B356710E11ADC77A0C49D292B1F- | |||
16EF4F4E19D0CC284A88C0F8D472042329 ... 2507991BA55D64238448F0A853D11B87- | |||
FC0646091ABF25376EB6338B62E19D7529 ... E38E9B4EF2A554FB3248C0CADB | |||
E=03 | |||
</p> | |||
==See also== | ==See also== | ||
<p> | |||
<var>Stringlist</var> methods: </p> | |||
{{Template:Stringlist crypto methods}} | |||
<p> | |||
<var>String</var> methods:</p> | |||
<ul> | |||
<li><var>[[CertificateRequest (String function)|CertificateRequest]]</var> </li> | |||
<li><var>[[SignedCertificate (String function)|SignedCertificate]]</var> </li> | |||
<li><var>[[SignedClientCertificate (String function)|SignedClientCertificate]]</var> </li> | |||
<li><var>[[DerToXmlDoc (String function)|DerToXmlDoc]]</var> </li> | |||
<li><var>[[RSAPrivateKeyToXmlDoc (String function)|RSAPrivateKeyToXmlDoc]]</var></li> | |||
<li><var>[[X509CertificateToXmlDoc (String function)|X509CertificateToXmlDoc]]</var> </li> | |||
<li><var>[[X509CrlToXmlDoc (String function)|X509CrlToXmlDoc]]</var> </li> | |||
<li>Multiple cryptographic cipher methods </li> | |||
</ul> | |||
<p> | |||
<var>System</var> methods: </p> | |||
<ul> | |||
<li><var>[[ClientCertificate (System function)|ClientCertificate]]</var> </li><li><var>[[GeneratedPrivateKey (System function)|GeneratedPrivateKey]]</var> </li> | |||
</ul> | |||
<p> | |||
<var>Socket</var> methods: </p> | |||
<ul> | |||
<li><var>[[Certificate (Socket function)|Certificate]]</var> </li> | |||
</ul> | |||
{{Template:Stringlist:AppendPrivateKeyInfo footer}} | {{Template:Stringlist:AppendPrivateKeyInfo footer}} |
Latest revision as of 15:14, 6 September 2018
Add RSA private key information to a Stringlist (Stringlist class)
[Requires Janus Network Security]
This callable method adds lines from the information section of an SSL private key to the end of a Stringlist.
Syntax
[%number =] sl:AppendPrivateKeyInfo[( [sl], [[Password=] string])]
Syntax terms
%number | An, optional, numeric variable that is set to zero if the function is a success. The possible return codes are described below in Return codes. |
---|---|
sl | A Stringlist object to receive the private key information. |
sl | A Stringlist object that contains the base64 encoded text of an RSA private key. |
Password | This optional, name allowed, parameter is a string that contains a password to decrypt the private key, if necessary. |
Return codes
0 | All is well. |
---|---|
1 | Encrypted but no password specified. |
2 | Encrypted and wrong password specified. |
3 | Out of CCATEMP. |
5 | Stringlist identifier missing. |
6 | Invalid Stringlist identifier. |
7 | Insufficient storage. |
10 | Input Stringlist identifier missing. |
11 | Invalid input Stringlist identifier. |
12 | Invalid input Stringlist data (not correctly base-64 encoded). |
13 | Invalid request/certificate (internal structure of certificate is not valid). |
Usage notes
- The updated Stringlist contains an arbitrary amount of
information in an arbitrary order. Each list item
is in ID=value format. These are the possible IDs:
S.C Subject country S.S Subject state or province S.L Subject locality - city, town, village, etc. S.O Subject organization S.OU Subject organization unit S.CN Subject common name I.C Issuer country I.S Issuer state or province I.L Issuer locality: city, town, village, etc. I.O Issuer organization I.OU Issuer organization unit I.CN Issuer common name EFF Effective date in YYMMDDHHMISS format (GMT) EXP Expiration date in YYMMDDHHMISS format (GMT) ALG Key algorithm - currently always RSA N Public modulus in hexadecimal E Public exponent in hexadecimal
Examples
In the following example, a private key is hard-coded into one Stringlist, then the information contained in the private key is extracted via AppendPrivateKeyInfo into another Stringlist:
b %sl is object stringlist %pkey is object stringlist %sl = new %pkey = new text to %pkey 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 %sl:appendPrivateKeyInfo(%pkey) %sl:print end
The result is something like:
ALG=RSA N=9BA4F09925EDE3E972AE1C32F5206AD8 ... A461AEFECF9D126339A8C4A23C3DF08B- CB148E3DE556F42121452CA22089728D08 ... 4D1B3B356710E11ADC77A0C49D292B1F- 16EF4F4E19D0CC284A88C0F8D472042329 ... 2507991BA55D64238448F0A853D11B87- FC0646091ABF25376EB6338B62E19D7529 ... E38E9B4EF2A554FB3248C0CADB E=03
See also
Stringlist methods:
- AppendCertificateInfo
- AppendCertificateRequest
- AppendCertificateRequestInfo
- AppendClientCertificateRequest
- AppendEncryptedSecurityData
- AppendGeneratedPrivateKey
- AppendPemData
- AppendPrivateKeyInfo
- AppendSignedCertificate
- AppendSignedClientCertificate
- CheckCertificate
- CheckCertificateRequest
- PemToString
String methods:
- CertificateRequest
- SignedCertificate
- SignedClientCertificate
- DerToXmlDoc
- RSAPrivateKeyToXmlDoc
- X509CertificateToXmlDoc
- X509CrlToXmlDoc
- Multiple cryptographic cipher methods
System methods:
Socket methods: