]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
encoding: Support certificate payload encoding of CGA parameters
authorMartin Willi <martin@revosec.ch>
Wed, 28 Jan 2015 16:26:50 +0000 (17:26 +0100)
committerMartin Willi <martin@revosec.ch>
Tue, 24 Feb 2015 16:13:57 +0000 (17:13 +0100)
src/libcharon/encoding/payloads/cert_payload.c

index 63f4210f0ddbb7caf89a827e1913ad2109d17cca..1b315424cf2bc719bf5daf77c5483d3713ae0fed 100644 (file)
@@ -333,15 +333,22 @@ cert_payload_t *cert_payload_create_from_cert(payload_type_t type,
                                                                                          certificate_t *cert)
 {
        private_cert_payload_t *this;
+       cred_encoding_type_t encoding;
 
        this = (private_cert_payload_t*)cert_payload_create(type);
        switch (cert->get_type(cert))
        {
                case CERT_X509:
                        this->encoding = ENC_X509_SIGNATURE;
+                       encoding = CERT_ASN1_DER;
                        break;
                case CERT_X509_AC:
                        this->encoding = ENC_X509_ATTRIBUTE;
+                       encoding = CERT_ASN1_DER;
+                       break;
+               case CERT_CGA_PARAMS:
+                       this->encoding = ENC_CGA_PARAMS;
+                       encoding = CERT_CGA_ENCODING;
                        break;
                default:
                        DBG1(DBG_ENC, "embedding %N certificate in payload failed",
@@ -349,7 +356,7 @@ cert_payload_t *cert_payload_create_from_cert(payload_type_t type,
                        free(this);
                        return NULL;
        }
-       if (!cert->get_encoding(cert, CERT_ASN1_DER, &this->data))
+       if (!cert->get_encoding(cert, encoding, &this->data))
        {
                DBG1(DBG_ENC, "encoding certificate for cert payload failed");
                free(this);