@@ -505,6 +505,8 @@ TDFObject createTDF(InputStream payload, OutputStream outputStream, Config.TDFCo
505505 }
506506
507507 for (var assertionConfig : tdfConfig .assertionConfigList ) {
508+
509+
508510 var assertion = new Manifest .Assertion ();
509511 assertion .id = assertionConfig .id ;
510512 assertion .type = assertionConfig .type .toString ();
@@ -538,22 +540,20 @@ TDFObject createTDF(InputStream payload, OutputStream outputStream, Config.TDFCo
538540 assertionHashAsHex ,
539541 encodedHash );
540542 try {
541- assertion .sign (hashValues , assertionSigningKey );
543+ if (tdfConfig .binders .containsKey (assertionConfig .statement .schema )) {
544+ var binder = tdfConfig .binders .get (assertionConfig .statement .schema );
545+ binder .bind (tdfObject .manifest , completeHash );
546+ signedAssertions .add (assertion );
547+ } else {
548+ assertion .sign (hashValues , assertionSigningKey );
549+ }
550+
542551 } catch (KeyLengthException e ) {
543552 throw new SDKException ("error signing assertion hash" , e );
544553 }
545554 signedAssertions .add (assertion );
546555 }
547556
548- for (var binder : tdfConfig .binders ) {
549- try {
550- var assertion = binder .bind (tdfObject .manifest , aggregateHash .toByteArray ());
551- signedAssertions .add (assertion );
552- } catch (SDK .AssertionException e ) {
553- throw new SDKException ("error binding assertion" , e );
554- }
555- }
556-
557557 tdfObject .manifest .assertions = signedAssertions ;
558558 String manifestAsStr = gson .toJson (tdfObject .manifest );
559559
@@ -735,7 +735,7 @@ Reader loadTDF(SeekableByteChannel tdf, Config.TDFReaderConfig tdfReaderConfig)
735735 break ;
736736 }
737737
738- AssertionValidator validator = tdfReaderConfig .validators .get (assertion .type );
738+ AssertionValidator validator = tdfReaderConfig .validators .get (assertion .statement . schema );
739739
740740 if (validator != null ) {
741741 try {
0 commit comments