> To change the CSR require to parse it first, then form the new CSR with
> mentioned function.
> I want after parsing the CSR get the associative massive and than  pass this
> massive  to function that constructing   new CSR.
> The format of argument-extensions must be corresponding in this two
> functions.
> How way  can I archieve this?
> Thank  you  for help.

Write a little program that uses the libcrypto etc and that outputs
the data in the form you need may be an option. 

If you like to parse some information in xml like the following, I
can give you a hint.  An example of a csr (without extensions) but
the corresponding certs has them. 

<X509_REQ>
  <req_info type="X509_REQ_INFO">
    <version type="ASN1_INTEGER">0</version>
    <subject>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(countryName)2.5.4.6</object>
          <value type="PRINTABLESTRING">FR</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(organizationName)2.5.4.10</object>
          <value type="UTF8STRING">EdelWeb</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(organizationalUnitName)2.5.4.11</object>
          <value type="UTF8STRING">Service EdelPKI</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(commonName)2.5.4.3</object>
          <value type="UTF8STRING">Peter SYLVESTER <[EMAIL PROTECTED]></value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
    </subject>
    <pubkey type="X509_PUBKEY">
      <algor type="X509_ALGOR">
        <algorithm 
type="ASN1_OBJECT">(rsaEncryption)1.2.840.113549.1.1.1</algorithm>
        <parameter type="NULL" />
      </algor>
      <public_key 
type="ASN1_BIT_STRING">30:81:98:02:81:90:06:85:6a:e4:f6:2e:11:73:b1:5d:4d:e1:6e:6e:af:ba:21:c1:46:9b:c4:fa:26:02:e1:b1:53:a6:dc:18:d6:b9:b6:c2:ec:0a:50:ae:ca:c0:ad:f2:0f:dd:24:ea:fa:9d:61:01:9d:0e:b5:01:9f:24:b1:c1:64:e3:d5:3a:24:fd:f2:84:66:c4:d7:ae:3a:75:57:fc:92:cb:30:14:87:06:53:1a:ee:ff:78:a6:62:fc:27:03:09:a4:66:6d:9d:91:be:ac:bc:23:44:f6:21:3a:36:9b:9f:3f:41:86:10:9b:06:76:b5:93:c1:31:8e:32:eb:0f:1e:ae:1d:05:0b:00:ed:2a:e9:d7:92:31:73:37:e8:cd:76:5d:8c:ac:59:4f:02:03:01:00:01</public_key>
    </pubkey>
    <attributes>
    </attributes>
  </req_info>
  <sig_alg type="X509_ALGOR">
    <algorithm 
type="ASN1_OBJECT">(sha1WithRSAEncryption)1.2.840.113549.1.1.5</algorithm>
    <parameter type="NULL" />
  </sig_alg>
  <signature 
type="ASN1_BIT_STRING">03:60:dc:91:8c:69:fb:b2:f7:1d:1c:8b:38:f0:cf:e3:65:e4:ca:84:c4:c5:5c:f8:b7:a6:e3:12:b2:ad:b8:ff:33:2d:b5:a9:46:6c:2a:cf:cd:43:a8:5e:ce:75:3e:fa:a6:8e:3a:3b:05:29:27:03:92:f5:ee:52:5d:a9:ef:1e:b4:a7:e8:a9:be:9d:48:b8:77:ed:11:71:a9:47:51:1a:bc:d0:24:96:55:7b:7d:7a:f0:11:64:5b:b1:3c:10:8f:ac:43:eb:dd:de:af:3b:5a:a5:97:5a:aa:31:9e:46:de:0b:a2:47:fb:79:c3:58:69:a7:68:56:ed:d7:08:38:77:b8:69:44:d6:5a:c3:b2:13:0b:14:35:a8:75:35:4a:d7</signature>
</X509_REQ>

Since this had no extensions, here an output of the generated cert. 

<X509>
  <cert_info type="X509_CINF">
    <version type="ASN1_INTEGER">2</version>
    <serialNumber type="ASN1_INTEGER">10971639765603</serialNumber>
    <signature type="X509_ALGOR">
      <algorithm 
type="ASN1_OBJECT">(sha1WithRSAEncryption)1.2.840.113549.1.1.5</algorithm>
      <parameter type="NULL" />
    </signature>
    <issuer>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(countryName)2.5.4.6</object>
          <value type="PRINTABLESTRING">FR</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(organizationName)2.5.4.10</object>
          <value type="PRINTABLESTRING">EdelWeb</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(organizationalUnitName)2.5.4.11</object>
          <value type="PRINTABLESTRING">Service EdelPKI</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(commonName)2.5.4.3</object>
          <value type="PRINTABLESTRING">EdelPKI EdelWeb PersGEN</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
    </issuer>
    <validity type="X509_VAL">
      <notBefore type="ASN1_TIME">(Oct  7 15:46:44 2004 
GMT)041007154644Z</notBefore>
      <notAfter type="ASN1_TIME">(Dec 16 15:46:44 2006 
GMT)061216154644Z</notAfter>
    </validity>
    <subject>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(countryName)2.5.4.6</object>
          <value type="PRINTABLESTRING">FR</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(organizationName)2.5.4.10</object>
          <value type="UTF8STRING">EdelWeb</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(organizationalUnitName)2.5.4.11</object>
          <value type="UTF8STRING">Service EdelPKI</value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
      <RelativeDistinguishedName type="ASN1_SET">
        <X509_NAME_ENTRY>
          <object type="ASN1_OBJECT">(commonName)2.5.4.3</object>
          <value type="UTF8STRING">Peter SYLVESTER <[EMAIL PROTECTED]></value>
        </X509_NAME_ENTRY>
      </RelativeDistinguishedName>
    </subject>
    <key type="X509_PUBKEY">
      <algor type="X509_ALGOR">
        <algorithm 
type="ASN1_OBJECT">(rsaEncryption)1.2.840.113549.1.1.1</algorithm>
        <parameter type="NULL" />
      </algor>
      <public_key 
type="ASN1_BIT_STRING">30:81:98:02:81:90:06:85:6a:e4:f6:2e:11:73:b1:5d:4d:e1:6e:6e:af:ba:21:c1:46:9b:c4:fa:26:02:e1:b1:53:a6:dc:18:d6:b9:b6:c2:ec:0a:50:ae:ca:c0:ad:f2:0f:dd:24:ea:fa:9d:61:01:9d:0e:b5:01:9f:24:b1:c1:64:e3:d5:3a:24:fd:f2:84:66:c4:d7:ae:3a:75:57:fc:92:cb:30:14:87:06:53:1a:ee:ff:78:a6:62:fc:27:03:09:a4:66:6d:9d:91:be:ac:bc:23:44:f6:21:3a:36:9b:9f:3f:41:86:10:9b:06:76:b5:93:c1:31:8e:32:eb:0f:1e:ae:1d:05:0b:00:ed:2a:e9:d7:92:31:73:37:e8:cd:76:5d:8c:ac:59:4f:02:03:01:00:01</public_key>
    </key>
    <extensions>
      <Extension type="X509_EXTENSION">
        <object type="ASN1_OBJECT">(X509v3 Subject Alternative 
Name)2.5.29.17</object>
        <value>
          <GeneralNames>
            <GENERAL_NAME type="GENERAL_NAME">
              <rfc822Name type="ASN1_IA5STRING">[EMAIL PROTECTED]</rfc822Name>
            </GENERAL_NAME>
            <GENERAL_NAME type="GENERAL_NAME">
              <directoryName>
                <RelativeDistinguishedName type="ASN1_SET">
                  <X509_NAME_ENTRY>
                    <object type="ASN1_OBJECT">(countryName)2.5.4.6</object>
                    <value type="PRINTABLESTRING">FR</value>
                  </X509_NAME_ENTRY>
                </RelativeDistinguishedName>
                <RelativeDistinguishedName type="ASN1_SET">
                  <X509_NAME_ENTRY>
                    <object 
type="ASN1_OBJECT">(organizationName)2.5.4.10</object>
                    <value type="UTF8STRING">EdelWeb</value>
                  </X509_NAME_ENTRY>
                </RelativeDistinguishedName>
                <RelativeDistinguishedName type="ASN1_SET">
                  <X509_NAME_ENTRY>
                    <object type="ASN1_OBJECT">(commonName)2.5.4.3</object>
                    <value type="UTF8STRING">Peter SYLVESTER</value>
                  </X509_NAME_ENTRY>
                </RelativeDistinguishedName>
              </directoryName>
            </GENERAL_NAME>
          </GeneralNames>
        </value>
      </Extension>
      <Extension type="X509_EXTENSION">
        <object type="ASN1_OBJECT">(X509v3 Key Usage)2.5.29.15</object>
        <critical type="BOOLEAN">TRUE</critical>
        <value>
          <ASN1_BIT_STRING>e0</ASN1_BIT_STRING>
        </value>
      </Extension>
      <Extension type="X509_EXTENSION">
        <object type="ASN1_OBJECT">(X509v3 Extended Key Usage)2.5.29.37</object>
        <value>
          <EXTENDED_KEY_USAGE>
            <ASN1_OBJECT>(E-mail Protection)1.3.6.1.5.5.7.3.4</ASN1_OBJECT>
            <ASN1_OBJECT>(TLS Web Client 
Authentication)1.3.6.1.5.5.7.3.2</ASN1_OBJECT>
          </EXTENDED_KEY_USAGE>
        </value>
      </Extension>
      <Extension type="X509_EXTENSION">
        <object type="ASN1_OBJECT">(X509v3 CRL Distribution 
Points)2.5.29.31</object>
        <value>
          <CRLDistributionPoints>
            <DIST_POINT>
              <distpoint type="DIST_POINT_NAME">
                <name.fullname>
                  <GENERAL_NAME type="GENERAL_NAME">
                    <uniformResourceIdentifier 
type="ASN1_IA5STRING">http://edelpki.edelweb.fr/crl/EdelPKI-EdelWeb-PersGEN.crl</uniformResourceIdentifier>
                  </GENERAL_NAME>
                </name.fullname>
              </distpoint>
            </DIST_POINT>
          </CRLDistributionPoints>
        </value>
      </Extension>
      <Extension type="X509_EXTENSION">
        <object type="ASN1_OBJECT">(X509v3 Subject Key 
Identifier)2.5.29.14</object>
        <value>
          
<ASN1_OCTET_STRING>17:fc:82:30:bf:89:dc:fb:5d:eb:c8:97:1f:1c:98:a5:c8:6b:34:64</ASN1_OCTET_STRING>
        </value>
      </Extension>
      <Extension type="X509_EXTENSION">
        <object type="ASN1_OBJECT">(X509v3 Authority Key 
Identifier)2.5.29.35</object>
        <value>
          <AUTHORITY_KEYID>
            <keyid 
type="ASN1_OCTET_STRING">9e:e5:0f:c1:14:95:49:1c:dd:5a:5d:5e:9c:ae:cd:01:6f:2f:94:79</keyid>
          </AUTHORITY_KEYID>
        </value>
      </Extension>
    </extensions>
  </cert_info>
  <sig_alg type="X509_ALGOR">
    <algorithm 
type="ASN1_OBJECT">(sha1WithRSAEncryption)1.2.840.113549.1.1.5</algorithm>
    <parameter type="NULL" />
  </sig_alg>
  <signature 
type="ASN1_BIT_STRING">0f:64:35:ff:b5:8a:72:14:62:6d:1c:ac:86:8a:4a:e2:d4:0b:de:1c:2a:4d:03:0c:7c:46:8f:36:1e:73:da:81:0a:d1:16:28:c8:17:55:c6:0e:95:bd:55:f3:b5:10:e3:6d:ba:7f:d6:76:1d:d5:34:91:f7:f5:7a:c8:e4:28:23:f2:58:03:e0:71:12:bd:48:79:33:6e:74:5f:0d:6e:1a:57:8a:f4:7b:c9:77:3d:9f:0e:88:61:2e:a6:3d:24:84:6a:c1:ad:4f:6a:8c:08:3b:bc:0b:41:f6:66:0b:eb:d7:0d:ec:28:f0:5a:3b:57:c2:d2:ab:46:97:57:8f:a3:2e:d9:9d:2d:48:19:02:48:dd:57:f4:d0:9b:c3:0b:ca:4e:91:dd:0a:ba:0b:c4:88:77:35:9d:eb:b4:fe:23:65:f7:1a:65:86:bb:3f:97:ff:e8:95:87:2d:d5:71:c6:14:44:35:2f:25:01:8b:50:73:b5:e1:cd:71:7d:7c:ae:95:48:16:c5:40:d9:a9:e8:42:d7:95:1b:4d:4e:b2:ee:1c:8e:62:20:a9:92:93:05:ec:b3:8d:de:ce:c0:ed:49:64:b4:2c:0e:70:7d:a6:52:f0:20:60:d9:5e:16:3d:1a:30:46:e5:f2:84:2c:5f:1c:11:d7:8b:a4:ca:b8:65:89:b5:e9:60:1c:b5:dc:cf:5a:31:92:d7:27:e5:21:6b:d9:26:24:97:9a:9f:0e:ff:7c:3e:ef:8c:55:c2:a7:1b:44:24:39:70:7a:df:12:d6:a8:f6:b5:ac:61:f7:0e:9f:ef:c9:4e:38:a9:08:a2:3b:2b:ed:b2:45:34:b1:b1:1e:89!
 
:cb:e1:23:52:d9:47:df:77:cf:30:d7:1e:ff:96:c4:c9:52:6b:7d:ce:6c:cc:bb:d2:10:12:0a:26:c9:0c:d9:38:0b:ef:f9:91:f6:84:6c:64:cd:bd:c5:83:af:ac:8a:e4:b5:9f:45:6a:d3:17:59:68:7a:3b:aa:b8:a2</signature>
<?X509
-----BEGIN CERTIFICATE-----
MIIEdjCCAuOgAwIBAgIGCfqIsNpjMA0GCSqGSIb3DQEBBQUAMFsxCzAJBgNVBAYT
AkZSMRAwDgYDVQQKEwdFZGVsV2ViMRgwFgYDVQQLEw9TZXJ2aWNlIEVkZWxQS0kx
IDAeBgNVBAMTF0VkZWxQS0kgRWRlbFdlYiBQZXJzR0VOMB4XDTA0MTAwNzE1NDY0
NFoXDTA2MTIxNjE1NDY0NFowcDELMAkGA1UEBhMCRlIxEDAOBgNVBAoMB0VkZWxX
ZWIxGDAWBgNVBAsMD1NlcnZpY2UgRWRlbFBLSTE1MDMGA1UEAwwsUGV0ZXIgU1lM
VkVTVEVSIDxQZXRlci5TeWx2ZXN0ZXJAZWRlbHdlYi5mcj4wga4wDQYJKoZIhvcN
AQEBBQADgZwAMIGYAoGQBoVq5PYuEXOxXU3hbm6vuiHBRpvE+iYC4bFTptwY1rm2
wuwKUK7KwK3yD90k6vqdYQGdDrUBnySxwWTj1Tok/fKEZsTXrjp1V/ySyzAUhwZT
Gu7/eKZi/CcDCaRmbZ2Rvqy8I0T2ITo2m58/QYYQmwZ2tZPBMY4y6w8erh0FCwDt
KunXkjFzN+jNdl2MrFlPAgMBAAGjggEjMIIBHzBiBgNVHREEWzBZgRpQZXRlci5T
eWx2ZXN0ZXJAZWRlbHdlYi5mcqQ7MDkxCzAJBgNVBAYTAkZSMRAwDgYDVQQKDAdF
ZGVsV2ViMRgwFgYDVQQDDA9QZXRlciBTWUxWRVNURVIwDgYDVR0PAQH/BAQDAgXg
MB0GA1UdJQQWMBQGCCsGAQUFBwMEBggrBgEFBQcDAjBKBgNVHR8EQzBBMD+gPaA7
hjlodHRwOi8vZWRlbHBraS5lZGVsd2ViLmZyL2NybC9FZGVsUEtJLUVkZWxXZWIt
UGVyc0dFTi5jcmwwHQYDVR0OBBYEFBf8gjC/idz7XevIlx8cmKXIazRkMB8GA1Ud
IwQYMBaAFJ7lD8EUlUkc3VpdXpyuzQFvL5R5MA0GCSqGSIb3DQEBBQUAA4IBfAAP
ZDX/tYpyFGJtHKyGikri1AveHCpNAwx8Ro82HnPagQrRFijIF1XGDpW9VfO1EONt
un/Wdh3VNJH39XrI5Cgj8lgD4HESvUh5M250Xw1uGleK9HvJdz2fDohhLqY9JIRq
wa1PaowIO7wLQfZmC+vXDewo8Fo7V8LSq0aXV4+jLtmdLUgZAkjdV/TQm8MLyk6R
3Qq6C8SIdzWd67T+I2X3GmWGuz+X/+iVhy3VccYURDUvJQGLUHO14c1xfXyulUgW
xUDZqehC15UbTU6y7hyOYiCpkpMF7LON3s7A7UlktCwOcH2mUvAgYNleFj0aMEbl
8oQsXxwR14ukyrhlibXpYBy13M9aMZLXJ+Uha9kmJJeanw7/fD7vjFXCpxtEJDlw
et8S1qj2taxh9w6f78lOOKkIojsr7bJFNLGxHonL4SNS2Uffd88w1x7/lsTJUmt9
zmzMu9IQEgomyQzZOAvv+ZH2hGxkzb3Fg6+siuS1n0Vq0xdZaHo7qrii
-----END CERTIFICATE-----
?>
</X509>
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to