diff options
Diffstat (limited to 'Source/charon/encoding/payloads')
5 files changed, 44 insertions, 33 deletions
diff --git a/Source/charon/encoding/payloads/Makefile.payloads b/Source/charon/encoding/payloads/Makefile.payloads index 19b9a3bb4..61d920907 100644 --- a/Source/charon/encoding/payloads/Makefile.payloads +++ b/Source/charon/encoding/payloads/Makefile.payloads @@ -14,95 +14,95 @@ PAYLOADS_DIR= $(ENCODING_DIR)payloads/ -OBJS+= $(BUILD_DIR)encodings.o +CHARON_OBJS+= $(BUILD_DIR)encodings.o $(BUILD_DIR)encodings.o : $(PAYLOADS_DIR)encodings.c $(PAYLOADS_DIR)encodings.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)ike_header.o +CHARON_OBJS+= $(BUILD_DIR)ike_header.o $(BUILD_DIR)ike_header.o : $(PAYLOADS_DIR)ike_header.c $(PAYLOADS_DIR)ike_header.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)ke_payload.o +CHARON_OBJS+= $(BUILD_DIR)ke_payload.o $(BUILD_DIR)ke_payload.o : $(PAYLOADS_DIR)ke_payload.c $(PAYLOADS_DIR)ke_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)nonce_payload.o +CHARON_OBJS+= $(BUILD_DIR)nonce_payload.o $(BUILD_DIR)nonce_payload.o : $(PAYLOADS_DIR)nonce_payload.c $(PAYLOADS_DIR)nonce_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)notify_payload.o +CHARON_OBJS+= $(BUILD_DIR)notify_payload.o $(BUILD_DIR)notify_payload.o : $(PAYLOADS_DIR)notify_payload.c $(PAYLOADS_DIR)notify_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)id_payload.o +CHARON_OBJS+= $(BUILD_DIR)id_payload.o $(BUILD_DIR)id_payload.o : $(PAYLOADS_DIR)id_payload.c $(PAYLOADS_DIR)id_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)auth_payload.o +CHARON_OBJS+= $(BUILD_DIR)auth_payload.o $(BUILD_DIR)auth_payload.o : $(PAYLOADS_DIR)auth_payload.c $(PAYLOADS_DIR)auth_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)cert_payload.o +CHARON_OBJS+= $(BUILD_DIR)cert_payload.o $(BUILD_DIR)cert_payload.o : $(PAYLOADS_DIR)cert_payload.c $(PAYLOADS_DIR)cert_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)certreq_payload.o +CHARON_OBJS+= $(BUILD_DIR)certreq_payload.o $(BUILD_DIR)certreq_payload.o : $(PAYLOADS_DIR)certreq_payload.c $(PAYLOADS_DIR)certreq_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)delete_payload.o +CHARON_OBJS+= $(BUILD_DIR)delete_payload.o $(BUILD_DIR)delete_payload.o : $(PAYLOADS_DIR)delete_payload.c $(PAYLOADS_DIR)delete_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)vendor_id_payload.o +CHARON_OBJS+= $(BUILD_DIR)vendor_id_payload.o $(BUILD_DIR)vendor_id_payload.o : $(PAYLOADS_DIR)vendor_id_payload.c $(PAYLOADS_DIR)vendor_id_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)cp_payload.o +CHARON_OBJS+= $(BUILD_DIR)cp_payload.o $(BUILD_DIR)cp_payload.o : $(PAYLOADS_DIR)cp_payload.c $(PAYLOADS_DIR)cp_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)configuration_attribute.o +CHARON_OBJS+= $(BUILD_DIR)configuration_attribute.o $(BUILD_DIR)configuration_attribute.o : $(PAYLOADS_DIR)configuration_attribute.c $(PAYLOADS_DIR)configuration_attribute.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)eap_payload.o +CHARON_OBJS+= $(BUILD_DIR)eap_payload.o $(BUILD_DIR)eap_payload.o : $(PAYLOADS_DIR)eap_payload.c $(PAYLOADS_DIR)eap_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)unknown_payload.o +CHARON_OBJS+= $(BUILD_DIR)unknown_payload.o $(BUILD_DIR)unknown_payload.o : $(PAYLOADS_DIR)unknown_payload.c $(PAYLOADS_DIR)unknown_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)ts_payload.o +CHARON_OBJS+= $(BUILD_DIR)ts_payload.o $(BUILD_DIR)ts_payload.o : $(PAYLOADS_DIR)ts_payload.c $(PAYLOADS_DIR)ts_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)traffic_selector_substructure.o +CHARON_OBJS+= $(BUILD_DIR)traffic_selector_substructure.o $(BUILD_DIR)traffic_selector_substructure.o : $(PAYLOADS_DIR)traffic_selector_substructure.c $(PAYLOADS_DIR)traffic_selector_substructure.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)payload.o +CHARON_OBJS+= $(BUILD_DIR)payload.o $(BUILD_DIR)payload.o : $(PAYLOADS_DIR)payload.c $(PAYLOADS_DIR)payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)proposal_substructure.o +CHARON_OBJS+= $(BUILD_DIR)proposal_substructure.o $(BUILD_DIR)proposal_substructure.o : $(PAYLOADS_DIR)proposal_substructure.c $(PAYLOADS_DIR)proposal_substructure.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)sa_payload.o +CHARON_OBJS+= $(BUILD_DIR)sa_payload.o $(BUILD_DIR)sa_payload.o : $(PAYLOADS_DIR)sa_payload.c $(PAYLOADS_DIR)sa_payload.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)transform_attribute.o +CHARON_OBJS+= $(BUILD_DIR)transform_attribute.o $(BUILD_DIR)transform_attribute.o : $(PAYLOADS_DIR)transform_attribute.c $(PAYLOADS_DIR)transform_attribute.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)transform_substructure.o +CHARON_OBJS+= $(BUILD_DIR)transform_substructure.o $(BUILD_DIR)transform_substructure.o : $(PAYLOADS_DIR)transform_substructure.c $(PAYLOADS_DIR)transform_substructure.h $(CC) $(CFLAGS) -c -o $@ $< -OBJS+= $(BUILD_DIR)encryption_payload.o +CHARON_OBJS+= $(BUILD_DIR)encryption_payload.o $(BUILD_DIR)encryption_payload.o : $(PAYLOADS_DIR)encryption_payload.c $(PAYLOADS_DIR)encryption_payload.h $(CC) $(CFLAGS) -c -o $@ $< diff --git a/Source/charon/encoding/payloads/encryption_payload.c b/Source/charon/encoding/payloads/encryption_payload.c index da48c8349..70bbe9701 100644 --- a/Source/charon/encoding/payloads/encryption_payload.c +++ b/Source/charon/encoding/payloads/encryption_payload.c @@ -34,7 +34,7 @@ #include <encoding/parser.h> #include <utils/iterator.h> #include <utils/randomizer.h> -#include <transforms/signers/signer.h> +#include <crypto/signers/signer.h> @@ -294,7 +294,12 @@ static status_t encrypt(private_encryption_payload_t *this) /* build padding */ block_size = this->crypter->get_block_size(this->crypter); padding.len = block_size - ((this->decrypted.len + 1) % block_size); - randomizer->allocate_pseudo_random_bytes(randomizer, padding.len, &padding); + status = randomizer->allocate_pseudo_random_bytes(randomizer, padding.len, &padding); + if (status != SUCCESS) + { + randomizer->destroy(randomizer); + return status; + } /* concatenate payload data, padding, padding len */ to_crypt.len = this->decrypted.len + padding.len + 1; @@ -306,8 +311,14 @@ static status_t encrypt(private_encryption_payload_t *this) /* build iv */ iv.len = block_size; - randomizer->allocate_pseudo_random_bytes(randomizer, iv.len, &iv); + status = randomizer->allocate_pseudo_random_bytes(randomizer, iv.len, &iv); randomizer->destroy(randomizer); + if (status != SUCCESS) + { + allocator_free_chunk(&to_crypt); + allocator_free_chunk(&padding); + return status; + } this->logger->log_chunk(this->logger, RAW|LEVEL2, "data before encryption with padding", to_crypt); diff --git a/Source/charon/encoding/payloads/encryption_payload.h b/Source/charon/encoding/payloads/encryption_payload.h index 7119a72a0..77be246c5 100644 --- a/Source/charon/encoding/payloads/encryption_payload.h +++ b/Source/charon/encoding/payloads/encryption_payload.h @@ -23,8 +23,8 @@ #define ENCRYPTION_PAYLOAD_H_ #include <types.h> -#include <transforms/crypters/crypter.h> -#include <transforms/signers/signer.h> +#include <crypto/crypters/crypter.h> +#include <crypto/signers/signer.h> #include <encoding/payloads/payload.h> #include <utils/linked_list.h> diff --git a/Source/charon/encoding/payloads/traffic_selector_substructure.h b/Source/charon/encoding/payloads/traffic_selector_substructure.h index 1129ac845..755917055 100644 --- a/Source/charon/encoding/payloads/traffic_selector_substructure.h +++ b/Source/charon/encoding/payloads/traffic_selector_substructure.h @@ -26,7 +26,7 @@ #include <types.h> #include <encoding/payloads/payload.h> -#include <network/host.h> +#include <utils/host.h> #include <config/traffic_selector.h> /** diff --git a/Source/charon/encoding/payloads/transform_substructure.h b/Source/charon/encoding/payloads/transform_substructure.h index 62def3309..f6af3ee59 100644 --- a/Source/charon/encoding/payloads/transform_substructure.h +++ b/Source/charon/encoding/payloads/transform_substructure.h @@ -28,10 +28,10 @@ #include <encoding/payloads/payload.h> #include <encoding/payloads/transform_attribute.h> #include <utils/linked_list.h> -#include <transforms/diffie_hellman.h> -#include <transforms/signers/signer.h> -#include <transforms/prfs/prf.h> -#include <transforms/crypters/crypter.h> +#include <crypto/diffie_hellman.h> +#include <crypto/signers/signer.h> +#include <crypto/prfs/prf.h> +#include <crypto/crypters/crypter.h> #include <config/proposal.h> |