CRLDP extension taken from NIST PKITS (ValidcRLIssuerTest28EE.crt)

    X509v3 CRL Distribution Points: 

        Full Name:
          DirName: C = US, O = Test Certificates 2011, OU = indirectCRL CA3 cRLIssuer, CN = indirect CRL for indirectCRL CA3 
        CRL Issuer:
          DirName: C = US, O = Test Certificates 2011, OU = indirectCRL CA3 cRLIssuer



#-----BEGIN EXTENSION-----
SEQUENCE {
  # cRLDistributionPoints
  OBJECT_IDENTIFIER { 2.5.29.31 }
  OCTET_STRING {
    SEQUENCE {
      SEQUENCE {
        [0] {
          [0] {
            [4] {
              SEQUENCE {
                SET {
                  SEQUENCE {
                    # countryName
                    OBJECT_IDENTIFIER { 2.5.4.6 }
                    PrintableString { "US" }
                  }
                }
                SET {
                  SEQUENCE {
                    # organizationName
                    OBJECT_IDENTIFIER { 2.5.4.10 }
                    PrintableString { "Test Certificates 2011" }
                  }
                }
                SET {
                  SEQUENCE {
                    # organizationUnitName
                    OBJECT_IDENTIFIER { 2.5.4.11 }
                    PrintableString { "indirectCRL CA3 cRLIssuer" }
                  }
                }
                SET {
                  SEQUENCE {
                    # commonName
                    OBJECT_IDENTIFIER { 2.5.4.3 }
                    PrintableString { "indirect CRL for indirectCRL CA3" }
                  }
                }
              }
            }
          }
        }
        [2] {
          [4] {
            SEQUENCE {
              SET {
                SEQUENCE {
                  # countryName
                  OBJECT_IDENTIFIER { 2.5.4.6 }
                  PrintableString { "US" }
                }
              }
              SET {
                SEQUENCE {
                  # organizationName
                  OBJECT_IDENTIFIER { 2.5.4.10 }
                  PrintableString { "Test Certificates 2011" }
                }
              }
              SET {
                SEQUENCE {
                  # organizationUnitName
                  OBJECT_IDENTIFIER { 2.5.4.11 }
                  PrintableString { "indirectCRL CA3 cRLIssuer" }
                }
              }
            }
          }
        }
      }
    }
  }
}
#-----END EXTENSION-----

-----BEGIN CERTIFICATE-----
MIIDTDCCArWgAwIBAgIJAPuwTC6rEJsMMA0GCSqGSIb3DQEBBQUAMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMTQwNDIzMjA1MDQwWhcNMTcwNDIyMjA1MDQwWjBFMQswCQYDVQQGEwJBVTETMBEGA1UECAwKU29tZS1TdGF0ZTEhMB8GA1UECgwYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYK8imMuRi/03z0K1Zi0WnvfFHvwlYeyK9Na6XJYaUoIDAtB92kWdGMdAQhLciHnAjkXLI6W15OoV3gA/ElRZ1xUpxTMhjP6PyY5wqT5r6y8FxbiiFKKAnHmUcrgfVW28tQ+0rkLGMryRtrukXOgXBv7gcrmU7G1jC2a7WqmeI8QIDAQABo4IBQjCCAT4wHQYDVR0OBBYEFIt11azLCL4OH2W3+la+bKd12oWvMB8GA1UdIwQYMBaAFIt11azLCL4OH2W3+la+bKd12oWvMAwGA1UdEwQFMAMBAf8wge0GA1UdHwSB5TCB4jCB36CBhKCBgaR/MH0xCzAJBgNVBAYTAlVTMR8wHQYDVQQKExZUZXN0IENlcnRpZmljYXRlcyAyMDExMSIwIAYDVQQLExlpbmRpcmVjdENSTCBDQTMgY1JMSXNzdWVyMSkwJwYDVQQDEyBpbmRpcmVjdCBDUkwgZm9yIGluZGlyZWN0Q1JMIENBM6JWpFQwUjELMAkGA1UEBhMCVVMxHzAdBgNVBAoTFlRlc3QgQ2VydGlmaWNhdGVzIDIwMTExIjAgBgNVBAsTGWluZGlyZWN0Q1JMIENBMyBjUkxJc3N1ZXIwDQYJKoZIhvcNAQEFBQADgYEAO+h4bZXWPWr3ExksG8KIriKr9I0y9XxxZ88t0RzCw4fi6b6JXOQ0q0iRwj+VritHniV4a0+aEKRy/c/3AgywCgikWuLldH4RHTlgaskfafMuYybcnu9regrhVFeYqnKReAR+H49lTR8LEqycJA+EFBpVLR+78J0JsghcWTJlgCY=
-----END CERTIFICATE-----
