Chilkat Online Tools

ListCertificateAuthorities C# Example

AWS Private CA

// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.

Chilkat.Rest rest = new Chilkat.Rest();
bool success;

Chilkat.AuthAws authAws = new Chilkat.AuthAws();
authAws.AccessKey = "AWS_ACCESS_KEY";
authAws.SecretKey = "AWS_SECRET_KEY";

// Don't forget to change the region to your particular region. (Also make the same change in the call to Connect below.)
authAws.Region = "us-west-2";
authAws.ServiceName = "acm-pca";
// SetAuthAws causes Chilkat to automatically add the following headers: Authorization, X-Amz-Date
rest.SetAuthAws(authAws);

// URL: https://acm-pca.us-west-2.amazonaws.com/
// Use the same region as specified above.
success = rest.Connect("acm-pca.us-west-2.amazonaws.com",443,true,true);
if (success != true) {
    Debug.WriteLine("ConnectFailReason: " + Convert.ToString(rest.ConnectFailReason));
    Debug.WriteLine(rest.LastErrorText);
    return;
}

// The following code creates the JSON request body.
// The JSON created by this code is shown below.

// Use this online tool to generate code from sample JSON:
// Generate Code to Create JSON

Chilkat.JsonObject json = new Chilkat.JsonObject();
json.UpdateInt("MaxResults",123);
json.UpdateString("NextToken","string");
json.UpdateString("ResourceOwner","string");

// The JSON request body created by the above code:

// {
//   "MaxResults": number,
//   "NextToken": "string",
//   "ResourceOwner": "string"
// }

rest.AddHeader("Content-Type","application/x-amz-json-1.1");
rest.AddHeader("X-Amz-Target","ACMPrivateCA.ListCertificateAuthorities");

Chilkat.StringBuilder sbRequestBody = new Chilkat.StringBuilder();
json.EmitSb(sbRequestBody);
Chilkat.StringBuilder sbResponseBody = new Chilkat.StringBuilder();
success = rest.FullRequestSb("POST","/",sbRequestBody,sbResponseBody);
if (success != true) {
    Debug.WriteLine(rest.LastErrorText);
    return;
}

int respStatusCode = rest.ResponseStatusCode;
Debug.WriteLine("response status code = " + Convert.ToString(respStatusCode));
if (respStatusCode != 200) {
    Debug.WriteLine("Response Header:");
    Debug.WriteLine(rest.ResponseHeader);
    Debug.WriteLine("Response Body:");
    Debug.WriteLine(sbResponseBody.GetAsString());
    return;
}

Chilkat.JsonObject jResp = new Chilkat.JsonObject();
jResp.LoadSb(sbResponseBody);

// The following code parses the JSON response.
// A sample JSON response is shown below the sample code.

// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON

string Arn;
int CRLSign;
int DataEncipherment;
int DecipherOnly;
int DigitalSignature;
int EncipherOnly;
int KeyAgreement;
int KeyCertSign;
int KeyEncipherment;
int NonRepudiation;
string KeyAlgorithm;
string SigningAlgorithm;
string CommonName;
string Country;
string DistinguishedNameQualifier;
string GenerationQualifier;
string GivenName;
string Initials;
string Locality;
string Organization;
string OrganizationalUnit;
string Pseudonym;
string SerialNumber;
string State;
string Surname;
string Title;
int CreatedAt;
string FailureReason;
string KeyStorageSecurityStandard;
int LastStateChangeAt;
int NotAfter;
int NotBefore;
string OwnerAccount;
int RestorableUntil;
string CustomCname;
int Enabled;
int ExpirationInDays;
string S3BucketName;
string S3ObjectAcl;
int OcspConfigurationEnabled;
string OcspCustomCname;
string Serial;
string Status;
string v_Type;
int j;
int count_j;
string DirectoryNameCommonName;
string DirectoryNameCountry;
string DirectoryNameDistinguishedNameQualifier;
string DirectoryNameGenerationQualifier;
string DirectoryNameGivenName;
string DirectoryNameInitials;
string DirectoryNameLocality;
string DirectoryNameOrganization;
string DirectoryNameOrganizationalUnit;
string DirectoryNamePseudonym;
string DirectoryNameSerialNumber;
string DirectoryNameState;
string DirectoryNameSurname;
string DirectoryNameTitle;
string DnsName;
string NameAssigner;
string PartyName;
string IpAddress;
string TypeId;
string Value;
string RegisteredId;
string Rfc822Name;
string UniformResourceIdentifier;
string AccessMethodType;
string CustomObjectIdentifier;

string NextToken = jResp.StringOf("NextToken");
int i = 0;
int count_i = jResp.SizeOfArray("CertificateAuthorities");
while (i < count_i) {
    jResp.I = i;
    Arn = jResp.StringOf("CertificateAuthorities[i].Arn");
    CRLSign = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.CRLSign");
    DataEncipherment = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DataEncipherment");
    DecipherOnly = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DecipherOnly");
    DigitalSignature = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.DigitalSignature");
    EncipherOnly = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.EncipherOnly");
    KeyAgreement = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyAgreement");
    KeyCertSign = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyCertSign");
    KeyEncipherment = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.KeyEncipherment");
    NonRepudiation = jResp.IntOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.KeyUsage.NonRepudiation");
    KeyAlgorithm = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.KeyAlgorithm");
    SigningAlgorithm = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.SigningAlgorithm");
    CommonName = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.CommonName");
    Country = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Country");
    DistinguishedNameQualifier = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.DistinguishedNameQualifier");
    GenerationQualifier = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.GenerationQualifier");
    GivenName = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.GivenName");
    Initials = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Initials");
    Locality = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Locality");
    Organization = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Organization");
    OrganizationalUnit = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.OrganizationalUnit");
    Pseudonym = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Pseudonym");
    SerialNumber = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.SerialNumber");
    State = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.State");
    Surname = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Surname");
    Title = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.Subject.Title");
    CreatedAt = jResp.IntOf("CertificateAuthorities[i].CreatedAt");
    FailureReason = jResp.StringOf("CertificateAuthorities[i].FailureReason");
    KeyStorageSecurityStandard = jResp.StringOf("CertificateAuthorities[i].KeyStorageSecurityStandard");
    LastStateChangeAt = jResp.IntOf("CertificateAuthorities[i].LastStateChangeAt");
    NotAfter = jResp.IntOf("CertificateAuthorities[i].NotAfter");
    NotBefore = jResp.IntOf("CertificateAuthorities[i].NotBefore");
    OwnerAccount = jResp.StringOf("CertificateAuthorities[i].OwnerAccount");
    RestorableUntil = jResp.IntOf("CertificateAuthorities[i].RestorableUntil");
    CustomCname = jResp.StringOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.CustomCname");
    Enabled = jResp.IntOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.Enabled");
    ExpirationInDays = jResp.IntOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.ExpirationInDays");
    S3BucketName = jResp.StringOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.S3BucketName");
    S3ObjectAcl = jResp.StringOf("CertificateAuthorities[i].RevocationConfiguration.CrlConfiguration.S3ObjectAcl");
    OcspConfigurationEnabled = jResp.IntOf("CertificateAuthorities[i].RevocationConfiguration.OcspConfiguration.Enabled");
    OcspCustomCname = jResp.StringOf("CertificateAuthorities[i].RevocationConfiguration.OcspConfiguration.OcspCustomCname");
    Serial = jResp.StringOf("CertificateAuthorities[i].Serial");
    Status = jResp.StringOf("CertificateAuthorities[i].Status");
    v_Type = jResp.StringOf("CertificateAuthorities[i].Type");
    j = 0;
    count_j = jResp.SizeOfArray("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess");
    while (j < count_j) {
        jResp.J = j;
        DirectoryNameCommonName = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.CommonName");
        DirectoryNameCountry = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Country");
        DirectoryNameDistinguishedNameQualifier = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.DistinguishedNameQualifier");
        DirectoryNameGenerationQualifier = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.GenerationQualifier");
        DirectoryNameGivenName = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.GivenName");
        DirectoryNameInitials = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Initials");
        DirectoryNameLocality = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Locality");
        DirectoryNameOrganization = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Organization");
        DirectoryNameOrganizationalUnit = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.OrganizationalUnit");
        DirectoryNamePseudonym = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Pseudonym");
        DirectoryNameSerialNumber = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.SerialNumber");
        DirectoryNameState = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.State");
        DirectoryNameSurname = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Surname");
        DirectoryNameTitle = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DirectoryName.Title");
        DnsName = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.DnsName");
        NameAssigner = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.EdiPartyName.NameAssigner");
        PartyName = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.EdiPartyName.PartyName");
        IpAddress = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.IpAddress");
        TypeId = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.OtherName.TypeId");
        Value = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.OtherName.Value");
        RegisteredId = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.RegisteredId");
        Rfc822Name = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.Rfc822Name");
        UniformResourceIdentifier = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessLocation.UniformResourceIdentifier");
        AccessMethodType = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessMethod.AccessMethodType");
        CustomObjectIdentifier = jResp.StringOf("CertificateAuthorities[i].CertificateAuthorityConfiguration.CsrExtensions.SubjectInformationAccess[j].AccessMethod.CustomObjectIdentifier");
        j = j + 1;
    }

    i = i + 1;
}

// A sample JSON response body parsed by the above code:

// {
//   "CertificateAuthorities": [
//     {
//       "Arn": "string",
//       "CertificateAuthorityConfiguration": {
//         "CsrExtensions": {
//           "KeyUsage": {
//             "CRLSign": boolean,
//             "DataEncipherment": boolean,
//             "DecipherOnly": boolean,
//             "DigitalSignature": boolean,
//             "EncipherOnly": boolean,
//             "KeyAgreement": boolean,
//             "KeyCertSign": boolean,
//             "KeyEncipherment": boolean,
//             "NonRepudiation": boolean
//           },
//           "SubjectInformationAccess": [
//             {
//               "AccessLocation": {
//                 "DirectoryName": {
//                   "CommonName": "string",
//                   "Country": "string",
//                   "DistinguishedNameQualifier": "string",
//                   "GenerationQualifier": "string",
//                   "GivenName": "string",
//                   "Initials": "string",
//                   "Locality": "string",
//                   "Organization": "string",
//                   "OrganizationalUnit": "string",
//                   "Pseudonym": "string",
//                   "SerialNumber": "string",
//                   "State": "string",
//                   "Surname": "string",
//                   "Title": "string"
//                 },
//                 "DnsName": "string",
//                 "EdiPartyName": {
//                   "NameAssigner": "string",
//                   "PartyName": "string"
//                 },
//                 "IpAddress": "string",
//                 "OtherName": {
//                   "TypeId": "string",
//                   "Value": "string"
//                 },
//                 "RegisteredId": "string",
//                 "Rfc822Name": "string",
//                 "UniformResourceIdentifier": "string"
//               },
//               "AccessMethod": {
//                 "AccessMethodType": "string",
//                 "CustomObjectIdentifier": "string"
//               }
//             }
//           ]
//         },
//         "KeyAlgorithm": "string",
//         "SigningAlgorithm": "string",
//         "Subject": {
//           "CommonName": "string",
//           "Country": "string",
//           "DistinguishedNameQualifier": "string",
//           "GenerationQualifier": "string",
//           "GivenName": "string",
//           "Initials": "string",
//           "Locality": "string",
//           "Organization": "string",
//           "OrganizationalUnit": "string",
//           "Pseudonym": "string",
//           "SerialNumber": "string",
//           "State": "string",
//           "Surname": "string",
//           "Title": "string"
//         }
//       },
//       "CreatedAt": number,
//       "FailureReason": "string",
//       "KeyStorageSecurityStandard": "string",
//       "LastStateChangeAt": number,
//       "NotAfter": number,
//       "NotBefore": number,
//       "OwnerAccount": "string",
//       "RestorableUntil": number,
//       "RevocationConfiguration": {
//         "CrlConfiguration": {
//           "CustomCname": "string",
//           "Enabled": boolean,
//           "ExpirationInDays": number,
//           "S3BucketName": "string",
//           "S3ObjectAcl": "string"
//         },
//         "OcspConfiguration": {
//           "Enabled": boolean,
//           "OcspCustomCname": "string"
//         }
//       },
//       "Serial": "string",
//       "Status": "string",
//       "Type": "string"
//     }
//   ],
//   "NextToken": "string"
// }