AppendCertificateInfo (Stringlist function)

From m204wiki
Revision as of 15:10, 6 September 2018 by JAL (talk | contribs) (→‎See also: add method to list)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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.


[%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


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=* EFF=081020190102 EXP=181019190102 S.C=US S.O=ACME S.CN=* ALG=RSA N=AD753C4FAEFC20BB1209F44DFE532CC209196E8B21F4E5C38D394B5DD73C2F36074043711D213- A86BD69B3D6D1569469978800C2B428A96893D78CBCD4439864D26EF205D33B49C9C287757ED25B- ... F65A7C2B8CF213C716061 E=010001

See also

Stringlist methods:

String methods:

System methods:

Socket methods: