updated scepclient to new encoding API
authorMartin Willi <martin@strongswan.org>
Mon, 24 Aug 2009 12:19:16 +0000 (14:19 +0200)
committerMartin Willi <martin@strongswan.org>
Wed, 26 Aug 2009 09:23:52 +0000 (11:23 +0200)
src/scepclient/pkcs10.c
src/scepclient/scep.c
src/scepclient/scepclient.c

index cdd6843..b0de006 100644 (file)
@@ -157,11 +157,13 @@ build_req_info_attributes(pkcs10_t* pkcs10)
 static chunk_t
 pkcs10_build_request(pkcs10_t *pkcs10, int signature_alg)
 {
-       chunk_t key = pkcs10->public_key->get_encoding(pkcs10->public_key);
-
+       chunk_t key = chunk_empty;
+       
+       pkcs10->public_key->get_encoding(pkcs10->public_key, KEY_PUB_ASN1_DER, &key);
+       
        chunk_t keyInfo = asn1_wrap(ASN1_SEQUENCE, "cm",
                                                        asn1_algorithmIdentifier(OID_RSA_ENCRYPTION), 
-                                                       asn1_bitstring("m", key));      
+                                                       asn1_bitstring("m", key));
 
        chunk_t cert_req_info = asn1_wrap(ASN1_SEQUENCE, "ccmm",
                                                                ASN1_INTEGER_0,
index a788c6f..f3e978f 100644 (file)
@@ -287,16 +287,16 @@ void scep_generate_transaction_id(public_key_t *key, chunk_t *transID,
 {
        char digest_buf[HASH_SIZE_MD5];
        chunk_t digest = chunk_from_buf(digest_buf);
-       chunk_t keyEncoding, keyInfo;
+       chunk_t keyEncoding = chunk_empty, keyInfo;
        hasher_t *hasher;
        bool msb_set;
        u_char *pos;
        
-       keyEncoding = key->get_encoding(key);
-
+       key->get_encoding(key, KEY_PUB_ASN1_DER, &keyEncoding);
+       
        keyInfo = asn1_wrap(ASN1_SEQUENCE, "cm",
                                                asn1_algorithmIdentifier(OID_RSA_ENCRYPTION), 
-                                               asn1_bitstring("m", keyEncoding));      
+                                               asn1_bitstring("m", keyEncoding));
 
        hasher = lib->crypto->create_hasher(lib->crypto, HASH_MD5);
        hasher->get_hash(hasher, keyInfo, digest_buf);
index 6c0166d..ca6b070 100644 (file)
@@ -896,9 +896,8 @@ int main(int argc, char **argv)
                DBG(DBG_CONTROL,
                        DBG_log("building pkcs1 object:")
                )
-               pkcs1 = private_key->get_encoding(private_key);
-
-               if (!chunk_write(pkcs1, path, "pkcs1", 0066, force))
+               if (!private_key->get_encoding(private_key, KEY_PRIV_ASN1_DER, &pkcs1) ||
+                       !chunk_write(pkcs1, path, "pkcs1", 0066, force))
                        exit_scepclient("could not write pkcs1 file '%s'", path);
 
                filetype_out &= ~PKCS1;   /* delete PKCS1 flag */