AppendCertificateInfo (Stringlist function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (→‎See also: add method to list)
 
(31 intermediate revisions by 6 users not shown)
Line 1: Line 1:
{{Template:Stringlist:AppendCertificateInfo subtitle}}
{{Template:Stringlist:AppendCertificateInfo subtitle}}
 
This [[Notation conventions for methods#Callable functions|callable]] method adds lines from the information section of an SSL certificate to the end of a <var>Stringlist</var>.
This [[Notation conventions for methods#Callable functions|callable]] method adds lines to the end of a <var>Stringlist</var>, from the information section of an SSL certificate.


==Syntax==
==Syntax==
{{Template:Stringlist:AppendCertificateInfo syntax}}
{{Template:Stringlist:AppendCertificateInfo syntax}}
===Syntax terms===
===Syntax terms===
<table class="syntaxTable">
<table>
<tr><th>%rc</th>
<tr><th>%rc</th>
<td>An, optional, numeric variable that is set to zero if the function is a success.</td></tr>
<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>
<tr><th>sl</th>
<td>A <var>Stringlist</var> object.</td></tr>
<td>A <var>Stringlist</var> object.</td></tr>
<tr><th>certificate</th>
<tr><th>certificate</th>
<td>A Stringlist object that contains the raw text of a valid SSL certificate.</td></tr>
<td>A <var>Stringlist</var> object that contains the raw text of a valid SSL certificate.</td></tr>
</table>
</table>


==Return codes==
===Return codes===
<table class="syntaxTable">
<table class="thJustBold">
<tr><th>0</th><td>All is well.</td></tr>
<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>1</th><td>Encrypted but no password specified.</td></tr>
<tr><th>-3</th><td>Out of CCATEMP.</td></tr>
 
<tr><th>-5</th><td>List identifier missing.</td></tr>
<tr><th>2</th><td>Encrypted and wrong password specified.</td></tr>
<tr><th>-6</th><td>Invalid list identifier.</td></tr>
 
<tr><th>-7</th><td>Insufficient storage.</td></tr>
<tr><th>3</th><td>Out of CCATEMP.</td></tr>
<tr><th>-10</th><td>Input list identifier missing.</td></tr>
 
<tr><th>-11</th><td>Invalid input list identifier.</td></tr>
<tr><th>5</th><td><var>Stringlist</var> identifier missing.</td></tr>
<tr><th>-12</th><td>Invalid input list 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>
<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==
<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 of the <var>AppendCertificateInfo</var> method, a certificate is hard-coded into one Stringlist, then the information contained in the certificate is translated via <var>AppendCertificateInfo</var> into another:
In the following example, a certificate is hard-coded into one <var>Stringlist</var>, then the information contained in the certificate is translated via <var>AppendCertificateInfo</var> into another <var>Stringlist</var>:
<p class="code"> b
<p class="code">b


    %sl  is object stringlist
%sl  is object stringlist
    %cert is object stringlist
%cert is object stringlist


    %sl = new
%sl = new
    %cert = new
%cert = new


    text to %cert raw
text to %cert raw
        -----BEGIN CERTIFICATE-----
  -----BEGIN CERTIFICATE-----
        MIIB2TCCAUKgAwIBAgIESP4m7jANBgkqhkiG9w0BAQQFADAxMQswCQYDVQQGDAJVUzEMMAoGA1UE
  MIIB2TCCAUKgAwIBAgIESP4m7jANBgkqhkiG9w0BAQQFADAxMQswCQYDVQQGDAJVUzEMMAoGA1UE
        CgwDRE9FMRQwEgYDVQQDDAsqLm55Y2VkLm9yZzAeFw0wODEwMjAxOTAxMDJaFw0xODEwMTkxOTAx
  CgwDRE9FMRQwEgYDVQQDDAsqLm55Y2VkLm9yZzAeFw0wODEwMjAxOTAxMDJaFw0xODEwMTkxOTAx
        MDJaMDExCzAJBgNVBAYMAlVTMQwwCgYDVQQKDANET0UxFDASBgNVBAMMCyoubnljZWQub3JnMIGf
  MDJaMDExCzAJBgNVBAYMAlVTMQwwCgYDVQQKDANET0UxFDASBgNVBAMMCyoubnljZWQub3JnMIGf
        MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtdTxPrvwguxIJ9E3+UyzCCRluiyH05cONOUtd1zwv
  MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtdTxPrvwguxIJ9E3+UyzCCRluiyH05cONOUtd1zwv
        NgdAQ3EdITqGvWmz1tFWlGmXiADCtCipaJPXjLzUQ5hk0m7yBdM7ScnCh3V+0ls7+fjL/J8pUqvY
  NgdAQ3EdITqGvWmz1tFWlGmXiADCtCipaJPXjLzUQ5hk0m7yBdM7ScnCh3V+0ls7+fjL/J8pUqvY
        BLk5llLePd1qHOak3TPt4NAGMxf2u2Iz47bu0lpfZafCuM8hPHFgYQIDAQABMA0GCSqGSIb3DQEB
  BLk5llLePd1qHOak3TPt4NAGMxf2u2Iz47bu0lpfZafCuM8hPHFgYQIDAQABMA0GCSqGSIb3DQEB
        BAUAA4GBAF4Ee3T9DSZKVE97Kqzt3lJh/Wwg3i1UI2pc/HC9/rhzLxhTx9xfksAwe1+R5kLkHWyD
  BAUAA4GBAF4Ee3T9DSZKVE97Kqzt3lJh/Wwg3i1UI2pc/HC9/rhzLxhTx9xfksAwe1+R5kLkHWyD
        ddPfPqErKCdyhZ4QMSkM7bCeSy1aW6iF4R2v00eJ7wECAzO99QUatZ33m6Nwb5PToPDiirgsVWaj
  ddPfPqErKCdyhZ4QMSkM7bCeSy1aW6iF4R2v00eJ7wECAzO99QUatZ33m6Nwb5PToPDiirgsVWaj
        siWpXe998f7KgW0PwTunGmBLQaLg
  siWpXe998f7KgW0PwTunGmBLQaLg
        -----END CERTIFICATE-----
  -----END CERTIFICATE-----
    end text
end text


    %sl:appendCertificateInfo(%cert)
%sl:appendCertificateInfo(%cert)
    %sl:print
%sl:print


  end
  end
</p>
The result is something like:
<p class="output">
I.C=US
I.O=ACME
I.CN=*.acme.org
EFF=081020190102
EXP=181019190102
S.C=US
S.O=ACME
S.CN=*.acme.org
ALG=RSA 
N=AD753C4FAEFC20BB1209F44DFE532CC209196E8B21F4E5C38D394B5DD73C2F36074043711D213-
A86BD69B3D6D1569469978800C2B428A96893D78CBCD4439864D26EF205D33B49C9C287757ED25B-
...
F65A7C2B8CF213C716061
E=010001
</p>
</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:AppendOpenProcedure footer}}
{{Template:Stringlist:AppendOpenProcedure footer}}

Latest revision as of 15:10, 6 September 2018

Add certificate information to a Stringlist (Stringlist class)

[Requires Janus Network Security]

This callable method adds lines from the information section of an SSL certificate to the end of a Stringlist.

Syntax

[%rc =] sl:AppendCertificateInfo[( [certificate])]

Syntax terms

%rc 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.
certificate A Stringlist object that contains the raw text of a valid SSL certificate.

Return codes

0All is well.
1Encrypted but no password specified.
2Encrypted and wrong password specified.
3Out of CCATEMP.
5Stringlist identifier missing.
6Invalid Stringlist identifier.
7Insufficient storage.
10Input Stringlist identifier missing.
11Invalid input Stringlist identifier.
12Invalid input Stringlist data (not correctly base-64 encoded).
13Invalid 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 certificate is hard-coded into one Stringlist, then the information contained in the certificate is translated via AppendCertificateInfo into another Stringlist:

b %sl is object stringlist %cert is object stringlist %sl = new %cert = new text to %cert raw -----BEGIN CERTIFICATE----- MIIB2TCCAUKgAwIBAgIESP4m7jANBgkqhkiG9w0BAQQFADAxMQswCQYDVQQGDAJVUzEMMAoGA1UE CgwDRE9FMRQwEgYDVQQDDAsqLm55Y2VkLm9yZzAeFw0wODEwMjAxOTAxMDJaFw0xODEwMTkxOTAx MDJaMDExCzAJBgNVBAYMAlVTMQwwCgYDVQQKDANET0UxFDASBgNVBAMMCyoubnljZWQub3JnMIGf MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCtdTxPrvwguxIJ9E3+UyzCCRluiyH05cONOUtd1zwv NgdAQ3EdITqGvWmz1tFWlGmXiADCtCipaJPXjLzUQ5hk0m7yBdM7ScnCh3V+0ls7+fjL/J8pUqvY BLk5llLePd1qHOak3TPt4NAGMxf2u2Iz47bu0lpfZafCuM8hPHFgYQIDAQABMA0GCSqGSIb3DQEB BAUAA4GBAF4Ee3T9DSZKVE97Kqzt3lJh/Wwg3i1UI2pc/HC9/rhzLxhTx9xfksAwe1+R5kLkHWyD ddPfPqErKCdyhZ4QMSkM7bCeSy1aW6iF4R2v00eJ7wECAzO99QUatZ33m6Nwb5PToPDiirgsVWaj siWpXe998f7KgW0PwTunGmBLQaLg -----END CERTIFICATE----- end text %sl:appendCertificateInfo(%cert) %sl:print end

The result is something like:

I.C=US I.O=ACME I.CN=*.acme.org EFF=081020190102 EXP=181019190102 S.C=US S.O=ACME S.CN=*.acme.org ALG=RSA N=AD753C4FAEFC20BB1209F44DFE532CC209196E8B21F4E5C38D394B5DD73C2F36074043711D213- A86BD69B3D6D1569469978800C2B428A96893D78CBCD4439864D26EF205D33B49C9C287757ED25B- ... F65A7C2B8CF213C716061 E=010001

See also

Stringlist methods:

String methods:

System methods:

Socket methods: