21
21
import attr
22
22
import six
23
23
24
- import aws_encryption_sdk .internal .formatting .deserialize
25
- import aws_encryption_sdk .internal .formatting .encryption_context
26
- import aws_encryption_sdk .internal .formatting .serialize
27
24
import aws_encryption_sdk .internal .utils
28
25
from aws_encryption_sdk .exceptions import (
29
26
ActionNotAllowedError ,
38
35
from aws_encryption_sdk .internal .crypto .encryption import Decryptor , Encryptor , decrypt
39
36
from aws_encryption_sdk .internal .crypto .iv import non_framed_body_iv
40
37
from aws_encryption_sdk .internal .defaults import FRAME_LENGTH , LINE_LENGTH , MAX_NON_FRAMED_SIZE , TYPE , VERSION
38
+ from aws_encryption_sdk .internal .formatting .deserialize import (
39
+ deserialize_footer ,
40
+ deserialize_frame ,
41
+ deserialize_header ,
42
+ deserialize_header_auth ,
43
+ deserialize_non_framed_values ,
44
+ deserialize_tag ,
45
+ validate_header ,
46
+ )
47
+ from aws_encryption_sdk .internal .formatting .encryption_context import assemble_content_aad
48
+ from aws_encryption_sdk .internal .formatting .serialize import (
49
+ serialize_footer ,
50
+ serialize_frame ,
51
+ serialize_header ,
52
+ serialize_header_auth ,
53
+ serialize_non_framed_close ,
54
+ serialize_non_framed_open ,
55
+ )
41
56
from aws_encryption_sdk .key_providers .base import MasterKeyProvider
42
57
from aws_encryption_sdk .materials_managers import DecryptionMaterialsRequest , EncryptionMaterialsRequest
43
58
from aws_encryption_sdk .materials_managers .base import CryptoMaterialsManager
@@ -461,10 +476,8 @@ def _prep_message(self):
461
476
462
477
def _write_header (self ):
463
478
"""Builds the message header and writes it to the output stream."""
464
- self .output_buffer += aws_encryption_sdk .internal .formatting .serialize .serialize_header (
465
- header = self ._header , signer = self .signer
466
- )
467
- self .output_buffer += aws_encryption_sdk .internal .formatting .serialize .serialize_header_auth (
479
+ self .output_buffer += serialize_header (header = self ._header , signer = self .signer )
480
+ self .output_buffer += serialize_header_auth (
468
481
algorithm = self ._encryption_materials .algorithm ,
469
482
header = self .output_buffer ,
470
483
data_encryption_key = self ._derived_data_key ,
@@ -476,7 +489,7 @@ def _prep_non_framed(self):
476
489
aad_content_string = aws_encryption_sdk .internal .utils .get_aad_content_string (
477
490
content_type = self .content_type , is_final_frame = True
478
491
)
479
- associated_data = aws_encryption_sdk . internal . formatting . encryption_context . assemble_content_aad (
492
+ associated_data = assemble_content_aad (
480
493
message_id = self ._header .message_id ,
481
494
aad_content_string = aad_content_string ,
482
495
seq_num = 1 ,
@@ -488,7 +501,7 @@ def _prep_non_framed(self):
488
501
associated_data = associated_data ,
489
502
iv = non_framed_body_iv (self ._encryption_materials .algorithm ),
490
503
)
491
- self .output_buffer += aws_encryption_sdk . internal . formatting . serialize . serialize_non_framed_open (
504
+ self .output_buffer += serialize_non_framed_open (
492
505
algorithm = self ._encryption_materials .algorithm ,
493
506
iv = self .encryptor .iv ,
494
507
plaintext_length = self .stream_length ,
@@ -521,12 +534,10 @@ def _read_bytes_to_non_framed_body(self, b):
521
534
if self .signer is not None :
522
535
self .signer .update (closing )
523
536
524
- closing += aws_encryption_sdk .internal .formatting .serialize .serialize_non_framed_close (
525
- tag = self .encryptor .tag , signer = self .signer
526
- )
537
+ closing += serialize_non_framed_close (tag = self .encryptor .tag , signer = self .signer )
527
538
528
539
if self .signer is not None :
529
- closing += aws_encryption_sdk . internal . formatting . serialize . serialize_footer (self .signer )
540
+ closing += serialize_footer (self .signer )
530
541
return ciphertext + closing
531
542
532
543
return ciphertext
@@ -575,7 +586,7 @@ def _read_bytes_to_framed_body(self, b):
575
586
self .sequence_number ,
576
587
)
577
588
self ._bytes_encrypted += bytes_in_frame
578
- ciphertext , plaintext = aws_encryption_sdk . internal . formatting . serialize . serialize_frame (
589
+ ciphertext , plaintext = serialize_frame (
579
590
algorithm = self ._encryption_materials .algorithm ,
580
591
plaintext = plaintext ,
581
592
message_id = self ._header .message_id ,
@@ -592,7 +603,7 @@ def _read_bytes_to_framed_body(self, b):
592
603
if finalize :
593
604
_LOGGER .debug ("Writing footer" )
594
605
if self .signer is not None :
595
- output += aws_encryption_sdk . internal . formatting . serialize . serialize_footer (self .signer )
606
+ output += serialize_footer (self .signer )
596
607
self .source_stream .close ()
597
608
return output
598
609
@@ -713,7 +724,7 @@ def _read_header(self):
713
724
and aws_encryption_sdk.internal.structures.MessageHeaderAuthentication
714
725
:raises CustomMaximumValueExceeded: if frame length is greater than the custom max value
715
726
"""
716
- header , raw_header = aws_encryption_sdk . internal . formatting . deserialize . deserialize_header (self .source_stream )
727
+ header , raw_header = deserialize_header (self .source_stream )
717
728
self .__unframed_bytes_read += len (raw_header )
718
729
719
730
if (
@@ -742,15 +753,13 @@ def _read_header(self):
742
753
if self .verifier is not None :
743
754
self .verifier .update (raw_header )
744
755
745
- header_auth = aws_encryption_sdk . internal . formatting . deserialize . deserialize_header_auth (
756
+ header_auth = deserialize_header_auth (
746
757
stream = self .source_stream , algorithm = header .algorithm , verifier = self .verifier
747
758
)
748
759
self ._derived_data_key = derive_data_encryption_key (
749
760
source_key = decryption_materials .data_key .data_key , algorithm = header .algorithm , message_id = header .message_id
750
761
)
751
- aws_encryption_sdk .internal .formatting .deserialize .validate_header (
752
- header = header , header_auth = header_auth , raw_header = raw_header , data_key = self ._derived_data_key
753
- )
762
+ validate_header (header = header , header_auth = header_auth , raw_header = raw_header , data_key = self ._derived_data_key )
754
763
return header , header_auth
755
764
756
765
@property
@@ -767,7 +776,7 @@ def body_end(self):
767
776
768
777
def _prep_non_framed (self ):
769
778
"""Prepare the opening data for a non-framed message."""
770
- self ._unframed_body_iv , self .body_length = aws_encryption_sdk . internal . formatting . deserialize . deserialize_non_framed_values ( # noqa # pylint: disable=line-too-long
779
+ self ._unframed_body_iv , self .body_length = deserialize_non_framed_values (
771
780
stream = self .source_stream , header = self ._header , verifier = self .verifier
772
781
)
773
782
@@ -803,14 +812,12 @@ def _read_bytes_from_non_framed_body(self, b):
803
812
if self .verifier is not None :
804
813
self .verifier .update (ciphertext )
805
814
806
- tag = aws_encryption_sdk .internal .formatting .deserialize .deserialize_tag (
807
- stream = self .source_stream , header = self ._header , verifier = self .verifier
808
- )
815
+ tag = deserialize_tag (stream = self .source_stream , header = self ._header , verifier = self .verifier )
809
816
810
817
aad_content_string = aws_encryption_sdk .internal .utils .get_aad_content_string (
811
818
content_type = self ._header .content_type , is_final_frame = True
812
819
)
813
- associated_data = aws_encryption_sdk . internal . formatting . encryption_context . assemble_content_aad (
820
+ associated_data = assemble_content_aad (
814
821
message_id = self ._header .message_id ,
815
822
aad_content_string = aad_content_string ,
816
823
seq_num = 1 ,
@@ -827,9 +834,7 @@ def _read_bytes_from_non_framed_body(self, b):
827
834
plaintext = self .decryptor .update (ciphertext )
828
835
plaintext += self .decryptor .finalize ()
829
836
830
- self .footer = aws_encryption_sdk .internal .formatting .deserialize .deserialize_footer (
831
- stream = self .source_stream , verifier = self .verifier
832
- )
837
+ self .footer = deserialize_footer (stream = self .source_stream , verifier = self .verifier )
833
838
self .source_stream .close ()
834
839
return plaintext
835
840
@@ -845,7 +850,7 @@ def _read_bytes_from_framed_body(self, b):
845
850
_LOGGER .debug ("collecting %d bytes" , b )
846
851
while len (plaintext ) < b and not final_frame :
847
852
_LOGGER .debug ("Reading frame" )
848
- frame_data , final_frame = aws_encryption_sdk . internal . formatting . deserialize . deserialize_frame (
853
+ frame_data , final_frame = deserialize_frame (
849
854
stream = self .source_stream , header = self ._header , verifier = self .verifier
850
855
)
851
856
_LOGGER .debug ("Read complete for frame %d" , frame_data .sequence_number )
@@ -855,7 +860,7 @@ def _read_bytes_from_framed_body(self, b):
855
860
aad_content_string = aws_encryption_sdk .internal .utils .get_aad_content_string (
856
861
content_type = self ._header .content_type , is_final_frame = frame_data .final_frame
857
862
)
858
- associated_data = aws_encryption_sdk . internal . formatting . encryption_context . assemble_content_aad (
863
+ associated_data = assemble_content_aad (
859
864
message_id = self ._header .message_id ,
860
865
aad_content_string = aad_content_string ,
861
866
seq_num = frame_data .sequence_number ,
@@ -871,9 +876,7 @@ def _read_bytes_from_framed_body(self, b):
871
876
_LOGGER .debug ("bytes collected: %d" , plaintext_length )
872
877
if final_frame :
873
878
_LOGGER .debug ("Reading footer" )
874
- self .footer = aws_encryption_sdk .internal .formatting .deserialize .deserialize_footer (
875
- stream = self .source_stream , verifier = self .verifier
876
- )
879
+ self .footer = deserialize_footer (stream = self .source_stream , verifier = self .verifier )
877
880
self .source_stream .close ()
878
881
return plaintext
879
882
0 commit comments