merged sync ENGINE-551
authorKrista 'DarthMama' Bennett <krista@pep.foundation>
Wed, 26 Jun 2019 11:35:54 +0200
branchENGINE-551
changeset 3879e8bf8bb51582
parent 3828 8b28b328fd1b
parent 3867 3de2673a6724
child 3880 1642cd731c9f
child 3914 eec042946bec
merged sync
src/message_api.c
test/src/SuiteMaker.cc
test/src/engine_tests/SyncTests.cc.b0rken
     1.1 --- a/build-mac/pEpEngine.xcodeproj/project.pbxproj	Tue Jun 04 15:02:35 2019 +0200
     1.2 +++ b/build-mac/pEpEngine.xcodeproj/project.pbxproj	Wed Jun 26 11:35:54 2019 +0200
     1.3 @@ -7,143 +7,159 @@
     1.4  	objects = {
     1.5  
     1.6  /* Begin PBXBuildFile section */
     1.7 -		1521CEF6225C9AEF00FD2AA2 /* CommitAcceptForGroup.c in Sources */ = {isa = PBXBuildFile; fileRef = 1521CEE9225C9AED00FD2AA2 /* CommitAcceptForGroup.c */; };
     1.8 -		1521CEF7225C9AEF00FD2AA2 /* PString.h in Headers */ = {isa = PBXBuildFile; fileRef = 1521CEEA225C9AEE00FD2AA2 /* PString.h */; };
     1.9 -		1521CEF8225C9AEF00FD2AA2 /* Rollback.h in Headers */ = {isa = PBXBuildFile; fileRef = 1521CEEB225C9AEE00FD2AA2 /* Rollback.h */; };
    1.10 -		1521CEF9225C9AEF00FD2AA2 /* CommitAcceptForGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 1521CEEC225C9AEE00FD2AA2 /* CommitAcceptForGroup.h */; };
    1.11 -		1521CEFB225C9AEF00FD2AA2 /* CommitAccept.h in Headers */ = {isa = PBXBuildFile; fileRef = 1521CEEE225C9AEE00FD2AA2 /* CommitAccept.h */; };
    1.12 -		1521CEFD225C9AEF00FD2AA2 /* pdu_collection.c in Sources */ = {isa = PBXBuildFile; fileRef = 1521CEF0225C9AEE00FD2AA2 /* pdu_collection.c */; };
    1.13 -		1521CEFE225C9AEF00FD2AA2 /* KeySync.h in Headers */ = {isa = PBXBuildFile; fileRef = 1521CEF1225C9AEE00FD2AA2 /* KeySync.h */; };
    1.14 -		1521CEFF225C9AEF00FD2AA2 /* CommitReject.h in Headers */ = {isa = PBXBuildFile; fileRef = 1521CEF2225C9AEE00FD2AA2 /* CommitReject.h */; };
    1.15 -		1521CF00225C9AEF00FD2AA2 /* Sync.h in Headers */ = {isa = PBXBuildFile; fileRef = 1521CEF3225C9AEE00FD2AA2 /* Sync.h */; };
    1.16 -		1521CF01225C9AEF00FD2AA2 /* TID.h in Headers */ = {isa = PBXBuildFile; fileRef = 1521CEF5225C9AEF00FD2AA2 /* TID.h */; };
    1.17 +		154917FD22B926700091B6D6 /* libnettle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154917F922B9266F0091B6D6 /* libnettle.a */; };
    1.18 +		154917FE22B926700091B6D6 /* libsequoia_openpgp_ffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154917FA22B926700091B6D6 /* libsequoia_openpgp_ffi.a */; };
    1.19 +		154917FF22B926700091B6D6 /* libhogweed.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154917FB22B926700091B6D6 /* libhogweed.a */; };
    1.20 +		1549180022B926700091B6D6 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154917FC22B926700091B6D6 /* libgmp.a */; };
    1.21 +		1549181222B92EA20091B6D6 /* libiconv.2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 1549180D22B92EA20091B6D6 /* libiconv.2.tbd */; };
    1.22 +		154918AB22B940200091B6D6 /* fsm_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189222B9401D0091B6D6 /* fsm_common.h */; };
    1.23 +		154918AC22B940200091B6D6 /* status_to_string.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189322B9401E0091B6D6 /* status_to_string.h */; };
    1.24 +		154918AF22B940200091B6D6 /* KeySync_fsm.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189622B9401E0091B6D6 /* KeySync_fsm.h */; };
    1.25 +		154918B022B940200091B6D6 /* KeySync_fsm.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189722B9401E0091B6D6 /* KeySync_fsm.c */; };
    1.26 +		154918B122B940200091B6D6 /* Sync_actions.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189822B9401E0091B6D6 /* Sync_actions.c */; };
    1.27 +		154918B222B940200091B6D6 /* aux_mime_msg.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189922B9401E0091B6D6 /* aux_mime_msg.h */; };
    1.28 +		154918B322B940200091B6D6 /* Sync_impl.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189A22B9401E0091B6D6 /* Sync_impl.c */; };
    1.29 +		154918B522B940200091B6D6 /* sync_codec.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189C22B9401E0091B6D6 /* sync_codec.c */; };
    1.30 +		154918B622B940200091B6D6 /* Sync_event.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189D22B9401F0091B6D6 /* Sync_event.h */; };
    1.31 +		154918B722B940200091B6D6 /* Sync_event.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189E22B9401F0091B6D6 /* Sync_event.c */; };
    1.32 +		154918B922B940200091B6D6 /* Sync_func.c in Sources */ = {isa = PBXBuildFile; fileRef = 154918A022B9401F0091B6D6 /* Sync_func.c */; };
    1.33 +		154918BA22B940200091B6D6 /* resource_id.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A122B9401F0091B6D6 /* resource_id.h */; };
    1.34 +		154918BB22B940200091B6D6 /* aux_mime_msg.c in Sources */ = {isa = PBXBuildFile; fileRef = 154918A222B9401F0091B6D6 /* aux_mime_msg.c */; };
    1.35 +		154918BC22B940200091B6D6 /* openpgp_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A322B9401F0091B6D6 /* openpgp_compat.h */; };
    1.36 +		154918BD22B940200091B6D6 /* growing_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A422B9401F0091B6D6 /* growing_buf.h */; };
    1.37 +		154918BF22B940200091B6D6 /* sync_codec.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A622B9401F0091B6D6 /* sync_codec.h */; };
    1.38 +		154918C022B940200091B6D6 /* Sync_func.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A722B940200091B6D6 /* Sync_func.h */; };
    1.39 +		154918C222B940200091B6D6 /* Sync_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A922B940200091B6D6 /* Sync_impl.h */; };
    1.40 +		154918C322B940200091B6D6 /* blacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918AA22B940200091B6D6 /* blacklist.h */; };
    1.41 +		159EF42722B6D3E900149C0C /* pgp_sequoia.c in Sources */ = {isa = PBXBuildFile; fileRef = 159EF42422B6D3E900149C0C /* pgp_sequoia.c */; };
    1.42 +		159EF42822B6D3E900149C0C /* pgp_sequoia.h in Headers */ = {isa = PBXBuildFile; fileRef = 159EF42522B6D3E900149C0C /* pgp_sequoia.h */; };
    1.43 +		159EF42922B6D3E900149C0C /* pgp_sequoia_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 159EF42622B6D3E900149C0C /* pgp_sequoia_internal.h */; };
    1.44 +		15B037AA22B2B822002D664C /* ber_tlv_length.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0373F22B2B816002D664C /* ber_tlv_length.c */; };
    1.45 +		15B037AB22B2B822002D664C /* GroupKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0374022B2B817002D664C /* GroupKeys.h */; };
    1.46 +		15B037AC22B2B822002D664C /* CommitAccept.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374122B2B817002D664C /* CommitAccept.c */; };
    1.47 +		15B037AD22B2B822002D664C /* Rollback.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0374222B2B817002D664C /* Rollback.h */; };
    1.48 +		15B037AE22B2B822002D664C /* NegotiationOpen.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374322B2B817002D664C /* NegotiationOpen.c */; };
    1.49 +		15B037AF22B2B822002D664C /* constr_SEQUENCE.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374422B2B817002D664C /* constr_SEQUENCE.c */; };
    1.50 +		15B037B022B2B822002D664C /* UTF8String.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374522B2B817002D664C /* UTF8String.c */; };
    1.51 +		15B037B122B2B822002D664C /* NegotiationRequest.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374622B2B817002D664C /* NegotiationRequest.c */; };
    1.52 +		15B037B222B2B822002D664C /* Identity.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0374722B2B817002D664C /* Identity.h */; };
    1.53 +		15B037B322B2B822002D664C /* Beacon.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374822B2B817002D664C /* Beacon.c */; };
    1.54 +		15B037B422B2B822002D664C /* PString.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0374922B2B817002D664C /* PString.h */; };
    1.55 +		15B037B522B2B822002D664C /* OCTET_STRING.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374A22B2B817002D664C /* OCTET_STRING.c */; };
    1.56 +		15B037B622B2B822002D664C /* IdentityList.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0374B22B2B817002D664C /* IdentityList.h */; };
    1.57 +		15B037B722B2B822002D664C /* Sync.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374C22B2B818002D664C /* Sync.c */; };
    1.58 +		15B037B822B2B822002D664C /* NativeInteger.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0374D22B2B818002D664C /* NativeInteger.h */; };
    1.59 +		15B037B922B2B822002D664C /* NativeEnumerated.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374E22B2B818002D664C /* NativeEnumerated.c */; };
    1.60 +		15B037BA22B2B822002D664C /* asn_system.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0374F22B2B818002D664C /* asn_system.h */; };
    1.61 +		15B037BB22B2B822002D664C /* der_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375022B2B818002D664C /* der_encoder.c */; };
    1.62 +		15B037BC22B2B822002D664C /* OwnKeysRequester.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375122B2B818002D664C /* OwnKeysRequester.c */; };
    1.63 +		15B037BD22B2B822002D664C /* CommitAcceptOfferer.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0375222B2B818002D664C /* CommitAcceptOfferer.h */; };
    1.64 +		15B037BE22B2B822002D664C /* ber_tlv_tag.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375322B2B818002D664C /* ber_tlv_tag.c */; };
    1.65 +		15B037BF22B2B822002D664C /* BOOLEAN.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0375422B2B818002D664C /* BOOLEAN.h */; };
    1.66 +		15B037C022B2B822002D664C /* per_opentype.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0375522B2B819002D664C /* per_opentype.h */; };
    1.67 +		15B037C122B2B822002D664C /* Identity.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375622B2B819002D664C /* Identity.c */; };
    1.68 +		15B037C222B2B822002D664C /* asn_SEQUENCE_OF.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375722B2B819002D664C /* asn_SEQUENCE_OF.c */; };
    1.69 +		15B037C322B2B822002D664C /* constr_SEQUENCE_OF.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375822B2B819002D664C /* constr_SEQUENCE_OF.c */; };
    1.70 +		15B037C422B2B822002D664C /* pdu_collection.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375922B2B819002D664C /* pdu_collection.c */; };
    1.71 +		15B037C522B2B822002D664C /* Beacon.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0375A22B2B819002D664C /* Beacon.h */; };
    1.72 +		15B037C622B2B822002D664C /* xer_support.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375B22B2B819002D664C /* xer_support.c */; };
    1.73 +		15B037C722B2B822002D664C /* per_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0375C22B2B819002D664C /* per_decoder.c */; };
    1.74 +		15B037C822B2B822002D664C /* ISO639-1.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0375D22B2B819002D664C /* ISO639-1.h */; };
    1.75 +		15B037C922B2B822002D664C /* xer_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0375E22B2B81A002D664C /* xer_decoder.h */; };
    1.76 +		15B037CA22B2B822002D664C /* PrintableString.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0375F22B2B81A002D664C /* PrintableString.h */; };
    1.77 +		15B037CB22B2B822002D664C /* ISO639-1.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0376022B2B81A002D664C /* ISO639-1.c */; };
    1.78 +		15B037CC22B2B822002D664C /* ber_tlv_tag.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376122B2B81A002D664C /* ber_tlv_tag.h */; };
    1.79 +		15B037CD22B2B822002D664C /* PString.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0376222B2B81A002D664C /* PString.c */; };
    1.80 +		15B037CE22B2B822002D664C /* Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376322B2B81A002D664C /* Hash.h */; };
    1.81 +		15B037CF22B2B822002D664C /* NativeEnumerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376422B2B81A002D664C /* NativeEnumerated.h */; };
    1.82 +		15B037D022B2B822002D664C /* constr_TYPE.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376522B2B81A002D664C /* constr_TYPE.h */; };
    1.83 +		15B037D122B2B822002D664C /* per_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0376622B2B81B002D664C /* per_encoder.c */; };
    1.84 +		15B037D222B2B822002D664C /* CommitAcceptRequester.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0376722B2B81B002D664C /* CommitAcceptRequester.c */; };
    1.85 +		15B037D322B2B822002D664C /* CommitReject.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376822B2B81B002D664C /* CommitReject.h */; };
    1.86 +		15B037D422B2B822002D664C /* NegotiationRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376922B2B81B002D664C /* NegotiationRequest.h */; };
    1.87 +		15B037D522B2B822002D664C /* TID.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376A22B2B81B002D664C /* TID.h */; };
    1.88 +		15B037D622B2B822002D664C /* KeySync.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376B22B2B81B002D664C /* KeySync.h */; };
    1.89 +		15B037D722B2B822002D664C /* UTF8String.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376C22B2B81B002D664C /* UTF8String.h */; };
    1.90 +		15B037D822B2B822002D664C /* Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376D22B2B81C002D664C /* Version.h */; };
    1.91 +		15B037D922B2B822002D664C /* xer_encoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376E22B2B81C002D664C /* xer_encoder.h */; };
    1.92 +		15B037DA22B2B822002D664C /* asn_SET_OF.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0376F22B2B81C002D664C /* asn_SET_OF.h */; };
    1.93 +		15B037DB22B2B822002D664C /* asn_codecs_prim.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0377022B2B81C002D664C /* asn_codecs_prim.h */; };
    1.94 +		15B037DC22B2B822002D664C /* constraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0377122B2B81C002D664C /* constraints.h */; };
    1.95 +		15B037DD22B2B822002D664C /* Rollback.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377222B2B81C002D664C /* Rollback.c */; };
    1.96 +		15B037DE22B2B822002D664C /* KeySync.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377322B2B81C002D664C /* KeySync.c */; };
    1.97 +		15B037DF22B2B822002D664C /* IdentityList.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377422B2B81C002D664C /* IdentityList.c */; };
    1.98 +		15B037E022B2B822002D664C /* TID.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377522B2B81D002D664C /* TID.c */; };
    1.99 +		15B037E122B2B822002D664C /* GroupTrustThisKey.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377622B2B81D002D664C /* GroupTrustThisKey.c */; };
   1.100 +		15B037E222B2B822002D664C /* per_encoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0377722B2B81D002D664C /* per_encoder.h */; };
   1.101 +		15B037E322B2B822002D664C /* GroupKeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377822B2B81D002D664C /* GroupKeys.c */; };
   1.102 +		15B037E422B2B822002D664C /* xer_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377922B2B81D002D664C /* xer_decoder.c */; };
   1.103 +		15B037E522B2B822002D664C /* constr_SEQUENCE.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0377A22B2B81D002D664C /* constr_SEQUENCE.h */; };
   1.104 +		15B037E622B2B822002D664C /* constr_CHOICE.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0377B22B2B81D002D664C /* constr_CHOICE.h */; };
   1.105 +		15B037E722B2B822002D664C /* GroupTrustThisKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0377C22B2B81D002D664C /* GroupTrustThisKey.h */; };
   1.106 +		15B037E822B2B822002D664C /* constr_TYPE.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377D22B2B81D002D664C /* constr_TYPE.c */; };
   1.107 +		15B037E922B2B822002D664C /* CommitAcceptOfferer.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377E22B2B81D002D664C /* CommitAcceptOfferer.c */; };
   1.108 +		15B037EA22B2B822002D664C /* BIT_STRING.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0377F22B2B81E002D664C /* BIT_STRING.c */; };
   1.109 +		15B037EB22B2B822002D664C /* constr_SET_OF.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0378022B2B81E002D664C /* constr_SET_OF.c */; };
   1.110 +		15B037EC22B2B822002D664C /* constraints.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0378122B2B81E002D664C /* constraints.c */; };
   1.111 +		15B037ED22B2B822002D664C /* BIT_STRING.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378222B2B81E002D664C /* BIT_STRING.h */; };
   1.112 +		15B037EE22B2B822002D664C /* der_encoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378322B2B81E002D664C /* der_encoder.h */; };
   1.113 +		15B037EF22B2B822002D664C /* ber_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378422B2B81E002D664C /* ber_decoder.h */; };
   1.114 +		15B037F022B2B822002D664C /* NegotiationOpen.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378522B2B81E002D664C /* NegotiationOpen.h */; };
   1.115 +		15B037F122B2B822002D664C /* OCTET_STRING.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378622B2B81E002D664C /* OCTET_STRING.h */; };
   1.116 +		15B037F222B2B822002D664C /* constr_SEQUENCE_OF.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378722B2B81E002D664C /* constr_SEQUENCE_OF.h */; };
   1.117 +		15B037F322B2B822002D664C /* CommitAccept.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378822B2B81F002D664C /* CommitAccept.h */; };
   1.118 +		15B037F422B2B822002D664C /* ber_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0378922B2B81F002D664C /* ber_decoder.c */; };
   1.119 +		15B037F522B2B822002D664C /* INTEGER.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0378A22B2B81F002D664C /* INTEGER.c */; };
   1.120 +		15B037F622B2B822002D664C /* Version.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0378B22B2B81F002D664C /* Version.c */; };
   1.121 +		15B037F722B2B822002D664C /* per_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378C22B2B81F002D664C /* per_decoder.h */; };
   1.122 +		15B037F822B2B822002D664C /* OwnKeysOfferer.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0378D22B2B81F002D664C /* OwnKeysOfferer.c */; };
   1.123 +		15B037F922B2B822002D664C /* per_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378E22B2B81F002D664C /* per_support.h */; };
   1.124 +		15B037FA22B2B822002D664C /* INTEGER.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0378F22B2B81F002D664C /* INTEGER.h */; };
   1.125 +		15B037FB22B2B822002D664C /* Hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0379022B2B81F002D664C /* Hash.c */; };
   1.126 +		15B037FC22B2B822002D664C /* Hex.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0379122B2B820002D664C /* Hex.c */; };
   1.127 +		15B037FD22B2B822002D664C /* Hex.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0379222B2B820002D664C /* Hex.h */; };
   1.128 +		15B037FE22B2B822002D664C /* xer_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0379322B2B820002D664C /* xer_encoder.c */; };
   1.129 +		15B037FF22B2B822002D664C /* per_opentype.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0379422B2B820002D664C /* per_opentype.c */; };
   1.130 +		15B0380022B2B822002D664C /* xer_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0379522B2B820002D664C /* xer_support.h */; };
   1.131 +		15B0380122B2B822002D664C /* asn_SET_OF.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0379622B2B820002D664C /* asn_SET_OF.c */; };
   1.132 +		15B0380222B2B822002D664C /* ber_tlv_length.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0379722B2B820002D664C /* ber_tlv_length.h */; };
   1.133 +		15B0380322B2B822002D664C /* OwnKeysRequester.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0379822B2B820002D664C /* OwnKeysRequester.h */; };
   1.134 +		15B0380422B2B822002D664C /* constr_SET_OF.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0379922B2B821002D664C /* constr_SET_OF.h */; };
   1.135 +		15B0380522B2B822002D664C /* asn_codecs_prim.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0379A22B2B821002D664C /* asn_codecs_prim.c */; };
   1.136 +		15B0380622B2B822002D664C /* CommitAcceptForGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0379B22B2B821002D664C /* CommitAcceptForGroup.h */; };
   1.137 +		15B0380722B2B822002D664C /* constr_CHOICE.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0379C22B2B821002D664C /* constr_CHOICE.c */; };
   1.138 +		15B0380822B2B822002D664C /* asn_codecs.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0379D22B2B821002D664C /* asn_codecs.h */; };
   1.139 +		15B0380922B2B822002D664C /* per_support.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0379E22B2B821002D664C /* per_support.c */; };
   1.140 +		15B0380A22B2B822002D664C /* asn_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0379F22B2B821002D664C /* asn_internal.h */; };
   1.141 +		15B0380B22B2B822002D664C /* NativeInteger.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B037A022B2B821002D664C /* NativeInteger.c */; };
   1.142 +		15B0380C22B2B822002D664C /* BOOLEAN.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B037A122B2B821002D664C /* BOOLEAN.c */; };
   1.143 +		15B0380D22B2B822002D664C /* CommitReject.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B037A222B2B822002D664C /* CommitReject.c */; };
   1.144 +		15B0380E22B2B822002D664C /* PrintableString.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B037A322B2B822002D664C /* PrintableString.c */; };
   1.145 +		15B0380F22B2B823002D664C /* Sync.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B037A422B2B822002D664C /* Sync.h */; };
   1.146 +		15B0381022B2B823002D664C /* CommitAcceptRequester.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B037A522B2B822002D664C /* CommitAcceptRequester.h */; };
   1.147 +		15B0381122B2B823002D664C /* CommitAcceptForGroup.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B037A622B2B822002D664C /* CommitAcceptForGroup.c */; };
   1.148 +		15B0381222B2B823002D664C /* OwnKeysOfferer.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B037A722B2B822002D664C /* OwnKeysOfferer.h */; };
   1.149 +		15B0381322B2B823002D664C /* asn_application.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B037A822B2B822002D664C /* asn_application.h */; };
   1.150 +		15B0381422B2B823002D664C /* asn_SEQUENCE_OF.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B037A922B2B822002D664C /* asn_SEQUENCE_OF.h */; };
   1.151  		430BCC482015EE800077E998 /* pEp_string.h in Headers */ = {isa = PBXBuildFile; fileRef = 430BCC462015EE800077E998 /* pEp_string.h */; };
   1.152  		430BCC492015EE800077E998 /* pEp_string.c in Sources */ = {isa = PBXBuildFile; fileRef = 430BCC472015EE800077E998 /* pEp_string.c */; };
   1.153  		430D258B1C9ED75A00B94535 /* blacklist.c in Sources */ = {isa = PBXBuildFile; fileRef = 430D258A1C9ED75A00B94535 /* blacklist.c */; };
   1.154 -		431F048C2273223600CCE960 /* CommitAcceptSecond.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F04862273223600CCE960 /* CommitAcceptSecond.h */; };
   1.155 -		431F048D2273223600CCE960 /* CommitAcceptSecond.c in Sources */ = {isa = PBXBuildFile; fileRef = 431F048B2273223600CCE960 /* CommitAcceptSecond.c */; };
   1.156 -		431F04902273227900CCE960 /* OwnKeysFirst.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F048E2273227900CCE960 /* OwnKeysFirst.h */; };
   1.157 -		431F04912273227900CCE960 /* OwnKeysFirst.c in Sources */ = {isa = PBXBuildFile; fileRef = 431F048F2273227900CCE960 /* OwnKeysFirst.c */; };
   1.158 -		431F0494227322EF00CCE960 /* CommitAcceptFirst.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F0492227322EF00CCE960 /* CommitAcceptFirst.h */; };
   1.159 -		431F0495227322EF00CCE960 /* CommitAcceptFirst.c in Sources */ = {isa = PBXBuildFile; fileRef = 431F0493227322EF00CCE960 /* CommitAcceptFirst.c */; };
   1.160 -		431F04A22273235300CCE960 /* GroupTrustThisKey.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F049C2273235300CCE960 /* GroupTrustThisKey.h */; };
   1.161 -		431F04A32273235300CCE960 /* GroupTrustThisKey.c in Sources */ = {isa = PBXBuildFile; fileRef = 431F04A12273235300CCE960 /* GroupTrustThisKey.c */; };
   1.162 -		431F04A6227323A400CCE960 /* OwnKeysSecond.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F04A4227323A400CCE960 /* OwnKeysSecond.h */; };
   1.163 -		431F04A7227323A400CCE960 /* OwnKeysSecond.c in Sources */ = {isa = PBXBuildFile; fileRef = 431F04A5227323A400CCE960 /* OwnKeysSecond.c */; };
   1.164 -		431F04AA227323EE00CCE960 /* OwnKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F04A8227323EE00CCE960 /* OwnKeys.h */; };
   1.165 -		431F04AB227323EE00CCE960 /* OwnKeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 431F04A9227323EE00CCE960 /* OwnKeys.c */; };
   1.166  		431F04B722733A7E00CCE960 /* key_reset.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F04B222733A7E00CCE960 /* key_reset.h */; };
   1.167  		43370833203C075A004E6547 /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = 4337082D203C075A004E6547 /* sqlite3.c */; };
   1.168  		43370834203C075A004E6547 /* sqlite3.h in Headers */ = {isa = PBXBuildFile; fileRef = 43370832203C075A004E6547 /* sqlite3.h */; };
   1.169 -		4354FF651D6EDF300033069C /* sync_impl.c in Sources */ = {isa = PBXBuildFile; fileRef = 4354FF641D6EDF300033069C /* sync_impl.c */; };
   1.170 -		438C439B2167582500C7425B /* sync_api.h in Headers */ = {isa = PBXBuildFile; fileRef = 438C43962167582400C7425B /* sync_api.h */; };
   1.171  		438C43B52167752C00C7425B /* labeled_int_list.h in Headers */ = {isa = PBXBuildFile; fileRef = 438C43AF2167752C00C7425B /* labeled_int_list.h */; };
   1.172  		438C43B62167752C00C7425B /* labeled_int_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 438C43B42167752C00C7425B /* labeled_int_list.c */; };
   1.173 -		43CC349E2276D31A002F77AF /* NegotiationRequest.c in Sources */ = {isa = PBXBuildFile; fileRef = 43CC349C2276D31A002F77AF /* NegotiationRequest.c */; };
   1.174 -		43CC349F2276D31A002F77AF /* NegotiationRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 43CC349D2276D31A002F77AF /* NegotiationRequest.h */; };
   1.175 -		43CC34A22276D34C002F77AF /* NegotiationOpen.c in Sources */ = {isa = PBXBuildFile; fileRef = 43CC34A02276D34B002F77AF /* NegotiationOpen.c */; };
   1.176 -		43CC34A32276D34C002F77AF /* NegotiationOpen.h in Headers */ = {isa = PBXBuildFile; fileRef = 43CC34A12276D34C002F77AF /* NegotiationOpen.h */; };
   1.177  		43F6921D1F164A47009418F5 /* resource_id.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F6921C1F164A47009418F5 /* resource_id.c */; };
   1.178 -		43F73BF02166269200AB4524 /* PString.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73BEB2166269200AB4524 /* PString.c */; };
   1.179 -		43F73BF2216626E100AB4524 /* Sync_func.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73BF1216626E100AB4524 /* Sync_func.c */; };
   1.180 -		43F73BFC216627CC00AB4524 /* CommitAccept.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73BF5216627CB00AB4524 /* CommitAccept.c */; };
   1.181 -		43F73BFD216627CC00AB4524 /* TID.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73BF6216627CC00AB4524 /* TID.c */; };
   1.182 -		43F73BFE216627CC00AB4524 /* KeySync.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73BF7216627CC00AB4524 /* KeySync.c */; };
   1.183 -		43F73C00216627CC00AB4524 /* Rollback.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73BF9216627CC00AB4524 /* Rollback.c */; };
   1.184 -		43F73C02216627CC00AB4524 /* CommitReject.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73BFB216627CC00AB4524 /* CommitReject.c */; };
   1.185  		43F73C0B2166282C00AB4524 /* openpgp_compat.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C032166282C00AB4524 /* openpgp_compat.c */; };
   1.186 -		43F73C0C2166282C00AB4524 /* Sync_event.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C042166282C00AB4524 /* Sync_event.c */; };
   1.187  		43F73C0D2166282C00AB4524 /* key_reset.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C052166282C00AB4524 /* key_reset.c */; };
   1.188 -		43F73C0E2166282C00AB4524 /* sync_codec.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C062166282C00AB4524 /* sync_codec.c */; };
   1.189 -		43F73C0F2166282C00AB4524 /* KeySync_fsm.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C072166282C00AB4524 /* KeySync_fsm.c */; };
   1.190  		43F73C112166282C00AB4524 /* sync_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C092166282C00AB4524 /* sync_api.c */; };
   1.191  		43F73C122166282C00AB4524 /* growing_buf.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C0A2166282C00AB4524 /* growing_buf.c */; };
   1.192 -		43F73C14216628CA00AB4524 /* Sync.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C13216628CA00AB4524 /* Sync.c */; };
   1.193 -		6400FB861B8CA1C6005221E3 /* libnetpgp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 645922521B8BD32B00A5AF93 /* libnetpgp.a */; };
   1.194  		6400FB8B1B8CA1CF005221E3 /* libetpan-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64289E371B8B630200FC617B /* libetpan-ios.a */; };
   1.195  		644297C51BE11CE0002BC73B /* system.db in Resources */ = {isa = PBXBuildFile; fileRef = 64951A1B1BE0FCD800B10E71 /* system.db */; };
   1.196  		6467888C1CEB3D120001F54C /* map_asn1.c in Sources */ = {isa = PBXBuildFile; fileRef = 646788871CEB3D120001F54C /* map_asn1.c */; };
   1.197  		6467888D1CEB3D120001F54C /* map_asn1.h in Headers */ = {isa = PBXBuildFile; fileRef = 646788881CEB3D120001F54C /* map_asn1.h */; };
   1.198 -		646C40EA1D510CD800C63EFF /* asn_application.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40951D510CD700C63EFF /* asn_application.h */; };
   1.199 -		646C40EB1D510CD800C63EFF /* asn_codecs_prim.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40961D510CD700C63EFF /* asn_codecs_prim.c */; };
   1.200 -		646C40EC1D510CD800C63EFF /* asn_codecs_prim.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40971D510CD700C63EFF /* asn_codecs_prim.h */; };
   1.201 -		646C40ED1D510CD800C63EFF /* asn_codecs.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40981D510CD700C63EFF /* asn_codecs.h */; };
   1.202 -		646C40EE1D510CD800C63EFF /* asn_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40991D510CD700C63EFF /* asn_internal.h */; };
   1.203 -		646C40EF1D510CD800C63EFF /* asn_SEQUENCE_OF.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C409A1D510CD700C63EFF /* asn_SEQUENCE_OF.c */; };
   1.204 -		646C40F01D510CD800C63EFF /* asn_SEQUENCE_OF.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C409B1D510CD700C63EFF /* asn_SEQUENCE_OF.h */; };
   1.205 -		646C40F11D510CD800C63EFF /* asn_SET_OF.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C409C1D510CD700C63EFF /* asn_SET_OF.c */; };
   1.206 -		646C40F21D510CD800C63EFF /* asn_SET_OF.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C409D1D510CD700C63EFF /* asn_SET_OF.h */; };
   1.207 -		646C40F31D510CD800C63EFF /* asn_system.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C409E1D510CD700C63EFF /* asn_system.h */; };
   1.208 -		646C40F41D510CD800C63EFF /* Beacon.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C409F1D510CD700C63EFF /* Beacon.c */; };
   1.209 -		646C40F51D510CD800C63EFF /* Beacon.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40A01D510CD700C63EFF /* Beacon.h */; };
   1.210 -		646C40F61D510CD800C63EFF /* ber_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40A11D510CD700C63EFF /* ber_decoder.c */; };
   1.211 -		646C40F71D510CD800C63EFF /* ber_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40A21D510CD700C63EFF /* ber_decoder.h */; };
   1.212 -		646C40F81D510CD800C63EFF /* ber_tlv_length.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40A31D510CD700C63EFF /* ber_tlv_length.c */; };
   1.213 -		646C40F91D510CD800C63EFF /* ber_tlv_length.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40A41D510CD700C63EFF /* ber_tlv_length.h */; };
   1.214 -		646C40FA1D510CD800C63EFF /* ber_tlv_tag.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40A51D510CD700C63EFF /* ber_tlv_tag.c */; };
   1.215 -		646C40FB1D510CD800C63EFF /* ber_tlv_tag.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40A61D510CD700C63EFF /* ber_tlv_tag.h */; };
   1.216 -		646C40FC1D510CD800C63EFF /* BIT_STRING.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40A71D510CD700C63EFF /* BIT_STRING.c */; };
   1.217 -		646C40FD1D510CD800C63EFF /* BIT_STRING.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40A81D510CD700C63EFF /* BIT_STRING.h */; };
   1.218 -		646C40FE1D510CD800C63EFF /* BOOLEAN.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40A91D510CD700C63EFF /* BOOLEAN.c */; };
   1.219 -		646C40FF1D510CD800C63EFF /* BOOLEAN.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40AA1D510CD700C63EFF /* BOOLEAN.h */; };
   1.220 -		646C41001D510CD800C63EFF /* constr_CHOICE.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40AB1D510CD700C63EFF /* constr_CHOICE.c */; };
   1.221 -		646C41011D510CD800C63EFF /* constr_CHOICE.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40AC1D510CD700C63EFF /* constr_CHOICE.h */; };
   1.222 -		646C41021D510CD800C63EFF /* constr_SEQUENCE_OF.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40AD1D510CD700C63EFF /* constr_SEQUENCE_OF.c */; };
   1.223 -		646C41031D510CD800C63EFF /* constr_SEQUENCE_OF.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40AE1D510CD700C63EFF /* constr_SEQUENCE_OF.h */; };
   1.224 -		646C41041D510CD800C63EFF /* constr_SEQUENCE.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40AF1D510CD700C63EFF /* constr_SEQUENCE.c */; };
   1.225 -		646C41051D510CD800C63EFF /* constr_SEQUENCE.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40B01D510CD700C63EFF /* constr_SEQUENCE.h */; };
   1.226 -		646C41061D510CD800C63EFF /* constr_SET_OF.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40B11D510CD700C63EFF /* constr_SET_OF.c */; };
   1.227 -		646C41071D510CD800C63EFF /* constr_SET_OF.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40B21D510CD700C63EFF /* constr_SET_OF.h */; };
   1.228 -		646C41081D510CD800C63EFF /* constr_TYPE.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40B31D510CD700C63EFF /* constr_TYPE.c */; };
   1.229 -		646C41091D510CD800C63EFF /* constr_TYPE.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40B41D510CD700C63EFF /* constr_TYPE.h */; };
   1.230 -		646C410A1D510CD800C63EFF /* constraints.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40B51D510CD700C63EFF /* constraints.c */; };
   1.231 -		646C410B1D510CD800C63EFF /* constraints.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40B61D510CD700C63EFF /* constraints.h */; };
   1.232 -		646C410C1D510CD800C63EFF /* der_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40B71D510CD700C63EFF /* der_encoder.c */; };
   1.233 -		646C410D1D510CD800C63EFF /* der_encoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40B81D510CD700C63EFF /* der_encoder.h */; };
   1.234 -		646C41101D510CD800C63EFF /* GroupKeys.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40BB1D510CD700C63EFF /* GroupKeys.c */; };
   1.235 -		646C41111D510CD800C63EFF /* GroupKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40BC1D510CD700C63EFF /* GroupKeys.h */; };
   1.236 -		646C41141D510CD800C63EFF /* Hash.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40BF1D510CD700C63EFF /* Hash.c */; };
   1.237 -		646C41151D510CD800C63EFF /* Hash.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40C01D510CD700C63EFF /* Hash.h */; };
   1.238 -		646C41181D510CD800C63EFF /* Hex.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40C31D510CD700C63EFF /* Hex.c */; };
   1.239 -		646C41191D510CD800C63EFF /* Hex.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40C41D510CD700C63EFF /* Hex.h */; };
   1.240 -		646C411A1D510CD800C63EFF /* Identity.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40C51D510CD700C63EFF /* Identity.c */; };
   1.241 -		646C411B1D510CD800C63EFF /* Identity.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40C61D510CD700C63EFF /* Identity.h */; };
   1.242 -		646C411C1D510CD800C63EFF /* IdentityList.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40C71D510CD700C63EFF /* IdentityList.c */; };
   1.243 -		646C411D1D510CD800C63EFF /* IdentityList.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40C81D510CD800C63EFF /* IdentityList.h */; };
   1.244 -		646C411E1D510CD800C63EFF /* INTEGER.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40C91D510CD800C63EFF /* INTEGER.c */; };
   1.245 -		646C411F1D510CD800C63EFF /* INTEGER.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40CA1D510CD800C63EFF /* INTEGER.h */; };
   1.246 -		646C41201D510CD800C63EFF /* ISO639-1.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40CB1D510CD800C63EFF /* ISO639-1.c */; };
   1.247 -		646C41211D510CD800C63EFF /* ISO639-1.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40CC1D510CD800C63EFF /* ISO639-1.h */; };
   1.248 -		646C41221D510CD800C63EFF /* NativeEnumerated.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40CD1D510CD800C63EFF /* NativeEnumerated.c */; };
   1.249 -		646C41231D510CD800C63EFF /* NativeEnumerated.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40CE1D510CD800C63EFF /* NativeEnumerated.h */; };
   1.250 -		646C41241D510CD800C63EFF /* NativeInteger.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40CF1D510CD800C63EFF /* NativeInteger.c */; };
   1.251 -		646C41251D510CD800C63EFF /* NativeInteger.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40D01D510CD800C63EFF /* NativeInteger.h */; };
   1.252 -		646C41261D510CD800C63EFF /* OCTET_STRING.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40D11D510CD800C63EFF /* OCTET_STRING.c */; };
   1.253 -		646C41271D510CD800C63EFF /* OCTET_STRING.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40D21D510CD800C63EFF /* OCTET_STRING.h */; };
   1.254 -		646C41281D510CD800C63EFF /* per_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40D31D510CD800C63EFF /* per_decoder.c */; };
   1.255 -		646C41291D510CD800C63EFF /* per_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40D41D510CD800C63EFF /* per_decoder.h */; };
   1.256 -		646C412A1D510CD800C63EFF /* per_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40D51D510CD800C63EFF /* per_encoder.c */; };
   1.257 -		646C412B1D510CD800C63EFF /* per_encoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40D61D510CD800C63EFF /* per_encoder.h */; };
   1.258 -		646C412C1D510CD800C63EFF /* per_opentype.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40D71D510CD800C63EFF /* per_opentype.c */; };
   1.259 -		646C412D1D510CD800C63EFF /* per_opentype.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40D81D510CD800C63EFF /* per_opentype.h */; };
   1.260 -		646C412E1D510CD800C63EFF /* per_support.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40D91D510CD800C63EFF /* per_support.c */; };
   1.261 -		646C412F1D510CD800C63EFF /* per_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40DA1D510CD800C63EFF /* per_support.h */; };
   1.262 -		646C41301D510CD800C63EFF /* PrintableString.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40DB1D510CD800C63EFF /* PrintableString.c */; };
   1.263 -		646C41311D510CD800C63EFF /* PrintableString.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40DC1D510CD800C63EFF /* PrintableString.h */; };
   1.264 -		646C41341D510CD800C63EFF /* UTF8String.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40E01D510CD800C63EFF /* UTF8String.c */; };
   1.265 -		646C41351D510CD800C63EFF /* UTF8String.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40E11D510CD800C63EFF /* UTF8String.h */; };
   1.266 -		646C41361D510CD800C63EFF /* Version.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40E21D510CD800C63EFF /* Version.c */; };
   1.267 -		646C41371D510CD800C63EFF /* Version.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40E31D510CD800C63EFF /* Version.h */; };
   1.268 -		646C41381D510CD800C63EFF /* xer_decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40E41D510CD800C63EFF /* xer_decoder.c */; };
   1.269 -		646C41391D510CD800C63EFF /* xer_decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40E51D510CD800C63EFF /* xer_decoder.h */; };
   1.270 -		646C413A1D510CD800C63EFF /* xer_encoder.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40E61D510CD800C63EFF /* xer_encoder.c */; };
   1.271 -		646C413B1D510CD800C63EFF /* xer_encoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40E71D510CD800C63EFF /* xer_encoder.h */; };
   1.272 -		646C413C1D510CD800C63EFF /* xer_support.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C40E81D510CD800C63EFF /* xer_support.c */; };
   1.273 -		646C413D1D510CD800C63EFF /* xer_support.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C40E91D510CD800C63EFF /* xer_support.h */; };
   1.274 -		646C41451D510D2C00C63EFF /* sync_actions.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C413E1D510D2C00C63EFF /* sync_actions.c */; };
   1.275  		646C414E1D510D8800C63EFF /* baseprotocol.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C414C1D510D8800C63EFF /* baseprotocol.c */; };
   1.276  		646C414F1D510D8800C63EFF /* baseprotocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C414D1D510D8800C63EFF /* baseprotocol.h */; };
   1.277 -		649DE08B1B45C19100912F72 /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649DE08A1B45C19100912F72 /* libcurl.a */; };
   1.278  		64A826781B455D0800EECAF0 /* bloblist.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8264C1B455D0800EECAF0 /* bloblist.c */; };
   1.279  		64A826791B455D0800EECAF0 /* cryptotech.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8264E1B455D0800EECAF0 /* cryptotech.c */; };
   1.280  		64A8267A1B455D0800EECAF0 /* email.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A826511B455D0800EECAF0 /* email.c */; };
   1.281 @@ -154,7 +170,6 @@
   1.282  		64A8267F1B455D0800EECAF0 /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8265B1B455D0800EECAF0 /* message.c */; };
   1.283  		64A826801B455D0800EECAF0 /* mime.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8265D1B455D0800EECAF0 /* mime.c */; };
   1.284  		64A826811B455D0800EECAF0 /* pEpEngine.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A826601B455D0800EECAF0 /* pEpEngine.c */; };
   1.285 -		64A826821B455D0800EECAF0 /* pgp_netpgp.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A826631B455D0800EECAF0 /* pgp_netpgp.c */; };
   1.286  		64A826831B455D0800EECAF0 /* platform_unix.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A826651B455D0800EECAF0 /* platform_unix.c */; };
   1.287  		64A826861B455D0800EECAF0 /* stringlist.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8266D1B455D0800EECAF0 /* stringlist.c */; };
   1.288  		64A826871B455D0800EECAF0 /* stringpair.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8266F1B455D0800EECAF0 /* stringpair.c */; };
   1.289 @@ -202,20 +217,6 @@
   1.290  			remoteGlobalIDString = C682E21815B315EF00BE9DA7;
   1.291  			remoteInfo = "libetpan ios";
   1.292  		};
   1.293 -		645922511B8BD32B00A5AF93 /* PBXContainerItemProxy */ = {
   1.294 -			isa = PBXContainerItemProxy;
   1.295 -			containerPortal = 64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */;
   1.296 -			proxyType = 2;
   1.297 -			remoteGlobalIDString = 64AA9C201B45686800D0F542;
   1.298 -			remoteInfo = netpgp;
   1.299 -		};
   1.300 -		645922531B8BD53F00A5AF93 /* PBXContainerItemProxy */ = {
   1.301 -			isa = PBXContainerItemProxy;
   1.302 -			containerPortal = 64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */;
   1.303 -			proxyType = 1;
   1.304 -			remoteGlobalIDString = 64AA9C1F1B45686800D0F542;
   1.305 -			remoteInfo = netpgp;
   1.306 -		};
   1.307  /* End PBXContainerItemProxy section */
   1.308  
   1.309  /* Begin PBXCopyFilesBuildPhase section */
   1.310 @@ -231,146 +232,164 @@
   1.311  /* End PBXCopyFilesBuildPhase section */
   1.312  
   1.313  /* Begin PBXFileReference section */
   1.314 -		1521CEE9225C9AED00FD2AA2 /* CommitAcceptForGroup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAcceptForGroup.c; path = ../asn.1/CommitAcceptForGroup.c; sourceTree = "<group>"; };
   1.315 -		1521CEEA225C9AEE00FD2AA2 /* PString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PString.h; path = ../asn.1/PString.h; sourceTree = "<group>"; };
   1.316 -		1521CEEB225C9AEE00FD2AA2 /* Rollback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Rollback.h; path = ../asn.1/Rollback.h; sourceTree = "<group>"; };
   1.317 -		1521CEEC225C9AEE00FD2AA2 /* CommitAcceptForGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitAcceptForGroup.h; path = ../asn.1/CommitAcceptForGroup.h; sourceTree = "<group>"; };
   1.318 -		1521CEEE225C9AEE00FD2AA2 /* CommitAccept.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitAccept.h; path = ../asn.1/CommitAccept.h; sourceTree = "<group>"; };
   1.319 -		1521CEF0225C9AEE00FD2AA2 /* pdu_collection.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pdu_collection.c; path = ../asn.1/pdu_collection.c; sourceTree = "<group>"; };
   1.320 -		1521CEF1225C9AEE00FD2AA2 /* KeySync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeySync.h; path = ../asn.1/KeySync.h; sourceTree = "<group>"; };
   1.321 -		1521CEF2225C9AEE00FD2AA2 /* CommitReject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitReject.h; path = ../asn.1/CommitReject.h; sourceTree = "<group>"; };
   1.322 -		1521CEF3225C9AEE00FD2AA2 /* Sync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sync.h; path = ../asn.1/Sync.h; sourceTree = "<group>"; };
   1.323 -		1521CEF4225C9AEE00FD2AA2 /* sync.asn1 */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = sync.asn1; path = ../asn.1/sync.asn1; sourceTree = "<group>"; };
   1.324 -		1521CEF5225C9AEF00FD2AA2 /* TID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TID.h; path = ../asn.1/TID.h; sourceTree = "<group>"; };
   1.325 +		154917F922B9266F0091B6D6 /* libnettle.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libnettle.a; path = ../../sequoia4ios/build/lib/libnettle.a; sourceTree = "<group>"; };
   1.326 +		154917FA22B926700091B6D6 /* libsequoia_openpgp_ffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsequoia_openpgp_ffi.a; path = ../../sequoia4ios/build/lib/libsequoia_openpgp_ffi.a; sourceTree = "<group>"; };
   1.327 +		154917FB22B926700091B6D6 /* libhogweed.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libhogweed.a; path = ../../sequoia4ios/build/lib/libhogweed.a; sourceTree = "<group>"; };
   1.328 +		154917FC22B926700091B6D6 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgmp.a; path = ../../sequoia4ios/build/lib/libgmp.a; sourceTree = "<group>"; };
   1.329 +		1549180D22B92EA20091B6D6 /* libiconv.2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.2.tbd; path = usr/lib/libiconv.2.tbd; sourceTree = SDKROOT; };
   1.330 +		1549181322B92EA50091B6D6 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
   1.331 +		1549189222B9401D0091B6D6 /* fsm_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fsm_common.h; path = ../src/fsm_common.h; sourceTree = "<group>"; };
   1.332 +		1549189322B9401E0091B6D6 /* status_to_string.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = status_to_string.h; path = ../src/status_to_string.h; sourceTree = "<group>"; };
   1.333 +		1549189622B9401E0091B6D6 /* KeySync_fsm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeySync_fsm.h; path = ../src/KeySync_fsm.h; sourceTree = "<group>"; };
   1.334 +		1549189722B9401E0091B6D6 /* KeySync_fsm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = KeySync_fsm.c; path = ../src/KeySync_fsm.c; sourceTree = "<group>"; };
   1.335 +		1549189822B9401E0091B6D6 /* Sync_actions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_actions.c; path = ../src/Sync_actions.c; sourceTree = "<group>"; };
   1.336 +		1549189922B9401E0091B6D6 /* aux_mime_msg.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = aux_mime_msg.h; path = ../src/aux_mime_msg.h; sourceTree = "<group>"; };
   1.337 +		1549189A22B9401E0091B6D6 /* Sync_impl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_impl.c; path = ../src/Sync_impl.c; sourceTree = "<group>"; };
   1.338 +		1549189C22B9401E0091B6D6 /* sync_codec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_codec.c; path = ../src/sync_codec.c; sourceTree = "<group>"; };
   1.339 +		1549189D22B9401F0091B6D6 /* Sync_event.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sync_event.h; path = ../src/Sync_event.h; sourceTree = "<group>"; };
   1.340 +		1549189E22B9401F0091B6D6 /* Sync_event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_event.c; path = ../src/Sync_event.c; sourceTree = "<group>"; };
   1.341 +		154918A022B9401F0091B6D6 /* Sync_func.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_func.c; path = ../src/Sync_func.c; sourceTree = "<group>"; };
   1.342 +		154918A122B9401F0091B6D6 /* resource_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = resource_id.h; path = ../src/resource_id.h; sourceTree = "<group>"; };
   1.343 +		154918A222B9401F0091B6D6 /* aux_mime_msg.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = aux_mime_msg.c; path = ../src/aux_mime_msg.c; sourceTree = "<group>"; };
   1.344 +		154918A322B9401F0091B6D6 /* openpgp_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = openpgp_compat.h; path = ../src/openpgp_compat.h; sourceTree = "<group>"; };
   1.345 +		154918A422B9401F0091B6D6 /* growing_buf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = growing_buf.h; path = ../src/growing_buf.h; sourceTree = "<group>"; };
   1.346 +		154918A622B9401F0091B6D6 /* sync_codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sync_codec.h; path = ../src/sync_codec.h; sourceTree = "<group>"; };
   1.347 +		154918A722B940200091B6D6 /* Sync_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sync_func.h; path = ../src/Sync_func.h; sourceTree = "<group>"; };
   1.348 +		154918A922B940200091B6D6 /* Sync_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sync_impl.h; path = ../src/Sync_impl.h; sourceTree = "<group>"; };
   1.349 +		154918AA22B940200091B6D6 /* blacklist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = blacklist.h; path = ../src/blacklist.h; sourceTree = "<group>"; };
   1.350 +		159EF42422B6D3E900149C0C /* pgp_sequoia.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pgp_sequoia.c; path = ../src/pgp_sequoia.c; sourceTree = "<group>"; };
   1.351 +		159EF42522B6D3E900149C0C /* pgp_sequoia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pgp_sequoia.h; path = ../src/pgp_sequoia.h; sourceTree = "<group>"; };
   1.352 +		159EF42622B6D3E900149C0C /* pgp_sequoia_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pgp_sequoia_internal.h; path = ../src/pgp_sequoia_internal.h; sourceTree = "<group>"; };
   1.353 +		15B0373F22B2B816002D664C /* ber_tlv_length.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ber_tlv_length.c; path = ../asn.1/ber_tlv_length.c; sourceTree = "<group>"; };
   1.354 +		15B0374022B2B817002D664C /* GroupKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GroupKeys.h; path = ../asn.1/GroupKeys.h; sourceTree = "<group>"; };
   1.355 +		15B0374122B2B817002D664C /* CommitAccept.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAccept.c; path = ../asn.1/CommitAccept.c; sourceTree = "<group>"; };
   1.356 +		15B0374222B2B817002D664C /* Rollback.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Rollback.h; path = ../asn.1/Rollback.h; sourceTree = "<group>"; };
   1.357 +		15B0374322B2B817002D664C /* NegotiationOpen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NegotiationOpen.c; path = ../asn.1/NegotiationOpen.c; sourceTree = "<group>"; };
   1.358 +		15B0374422B2B817002D664C /* constr_SEQUENCE.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_SEQUENCE.c; path = ../asn.1/constr_SEQUENCE.c; sourceTree = "<group>"; };
   1.359 +		15B0374522B2B817002D664C /* UTF8String.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = UTF8String.c; path = ../asn.1/UTF8String.c; sourceTree = "<group>"; };
   1.360 +		15B0374622B2B817002D664C /* NegotiationRequest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NegotiationRequest.c; path = ../asn.1/NegotiationRequest.c; sourceTree = "<group>"; };
   1.361 +		15B0374722B2B817002D664C /* Identity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Identity.h; path = ../asn.1/Identity.h; sourceTree = "<group>"; };
   1.362 +		15B0374822B2B817002D664C /* Beacon.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Beacon.c; path = ../asn.1/Beacon.c; sourceTree = "<group>"; };
   1.363 +		15B0374922B2B817002D664C /* PString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PString.h; path = ../asn.1/PString.h; sourceTree = "<group>"; };
   1.364 +		15B0374A22B2B817002D664C /* OCTET_STRING.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = OCTET_STRING.c; path = ../asn.1/OCTET_STRING.c; sourceTree = "<group>"; };
   1.365 +		15B0374B22B2B817002D664C /* IdentityList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IdentityList.h; path = ../asn.1/IdentityList.h; sourceTree = "<group>"; };
   1.366 +		15B0374C22B2B818002D664C /* Sync.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync.c; path = ../asn.1/Sync.c; sourceTree = "<group>"; };
   1.367 +		15B0374D22B2B818002D664C /* NativeInteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NativeInteger.h; path = ../asn.1/NativeInteger.h; sourceTree = "<group>"; };
   1.368 +		15B0374E22B2B818002D664C /* NativeEnumerated.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NativeEnumerated.c; path = ../asn.1/NativeEnumerated.c; sourceTree = "<group>"; };
   1.369 +		15B0374F22B2B818002D664C /* asn_system.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_system.h; path = ../asn.1/asn_system.h; sourceTree = "<group>"; };
   1.370 +		15B0375022B2B818002D664C /* der_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = der_encoder.c; path = ../asn.1/der_encoder.c; sourceTree = "<group>"; };
   1.371 +		15B0375122B2B818002D664C /* OwnKeysRequester.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = OwnKeysRequester.c; path = ../asn.1/OwnKeysRequester.c; sourceTree = "<group>"; };
   1.372 +		15B0375222B2B818002D664C /* CommitAcceptOfferer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitAcceptOfferer.h; path = ../asn.1/CommitAcceptOfferer.h; sourceTree = "<group>"; };
   1.373 +		15B0375322B2B818002D664C /* ber_tlv_tag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ber_tlv_tag.c; path = ../asn.1/ber_tlv_tag.c; sourceTree = "<group>"; };
   1.374 +		15B0375422B2B818002D664C /* BOOLEAN.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BOOLEAN.h; path = ../asn.1/BOOLEAN.h; sourceTree = "<group>"; };
   1.375 +		15B0375522B2B819002D664C /* per_opentype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = per_opentype.h; path = ../asn.1/per_opentype.h; sourceTree = "<group>"; };
   1.376 +		15B0375622B2B819002D664C /* Identity.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Identity.c; path = ../asn.1/Identity.c; sourceTree = "<group>"; };
   1.377 +		15B0375722B2B819002D664C /* asn_SEQUENCE_OF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = asn_SEQUENCE_OF.c; path = ../asn.1/asn_SEQUENCE_OF.c; sourceTree = "<group>"; };
   1.378 +		15B0375822B2B819002D664C /* constr_SEQUENCE_OF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_SEQUENCE_OF.c; path = ../asn.1/constr_SEQUENCE_OF.c; sourceTree = "<group>"; };
   1.379 +		15B0375922B2B819002D664C /* pdu_collection.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pdu_collection.c; path = ../asn.1/pdu_collection.c; sourceTree = "<group>"; };
   1.380 +		15B0375A22B2B819002D664C /* Beacon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Beacon.h; path = ../asn.1/Beacon.h; sourceTree = "<group>"; };
   1.381 +		15B0375B22B2B819002D664C /* xer_support.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xer_support.c; path = ../asn.1/xer_support.c; sourceTree = "<group>"; };
   1.382 +		15B0375C22B2B819002D664C /* per_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = per_decoder.c; path = ../asn.1/per_decoder.c; sourceTree = "<group>"; };
   1.383 +		15B0375D22B2B819002D664C /* ISO639-1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ISO639-1.h"; path = "../asn.1/ISO639-1.h"; sourceTree = "<group>"; };
   1.384 +		15B0375E22B2B81A002D664C /* xer_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xer_decoder.h; path = ../asn.1/xer_decoder.h; sourceTree = "<group>"; };
   1.385 +		15B0375F22B2B81A002D664C /* PrintableString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrintableString.h; path = ../asn.1/PrintableString.h; sourceTree = "<group>"; };
   1.386 +		15B0376022B2B81A002D664C /* ISO639-1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ISO639-1.c"; path = "../asn.1/ISO639-1.c"; sourceTree = "<group>"; };
   1.387 +		15B0376122B2B81A002D664C /* ber_tlv_tag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ber_tlv_tag.h; path = ../asn.1/ber_tlv_tag.h; sourceTree = "<group>"; };
   1.388 +		15B0376222B2B81A002D664C /* PString.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = PString.c; path = ../asn.1/PString.c; sourceTree = "<group>"; };
   1.389 +		15B0376322B2B81A002D664C /* Hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Hash.h; path = ../asn.1/Hash.h; sourceTree = "<group>"; };
   1.390 +		15B0376422B2B81A002D664C /* NativeEnumerated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NativeEnumerated.h; path = ../asn.1/NativeEnumerated.h; sourceTree = "<group>"; };
   1.391 +		15B0376522B2B81A002D664C /* constr_TYPE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_TYPE.h; path = ../asn.1/constr_TYPE.h; sourceTree = "<group>"; };
   1.392 +		15B0376622B2B81B002D664C /* per_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = per_encoder.c; path = ../asn.1/per_encoder.c; sourceTree = "<group>"; };
   1.393 +		15B0376722B2B81B002D664C /* CommitAcceptRequester.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAcceptRequester.c; path = ../asn.1/CommitAcceptRequester.c; sourceTree = "<group>"; };
   1.394 +		15B0376822B2B81B002D664C /* CommitReject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitReject.h; path = ../asn.1/CommitReject.h; sourceTree = "<group>"; };
   1.395 +		15B0376922B2B81B002D664C /* NegotiationRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NegotiationRequest.h; path = ../asn.1/NegotiationRequest.h; sourceTree = "<group>"; };
   1.396 +		15B0376A22B2B81B002D664C /* TID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TID.h; path = ../asn.1/TID.h; sourceTree = "<group>"; };
   1.397 +		15B0376B22B2B81B002D664C /* KeySync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeySync.h; path = ../asn.1/KeySync.h; sourceTree = "<group>"; };
   1.398 +		15B0376C22B2B81B002D664C /* UTF8String.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UTF8String.h; path = ../asn.1/UTF8String.h; sourceTree = "<group>"; };
   1.399 +		15B0376D22B2B81C002D664C /* Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Version.h; path = ../asn.1/Version.h; sourceTree = "<group>"; };
   1.400 +		15B0376E22B2B81C002D664C /* xer_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xer_encoder.h; path = ../asn.1/xer_encoder.h; sourceTree = "<group>"; };
   1.401 +		15B0376F22B2B81C002D664C /* asn_SET_OF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_SET_OF.h; path = ../asn.1/asn_SET_OF.h; sourceTree = "<group>"; };
   1.402 +		15B0377022B2B81C002D664C /* asn_codecs_prim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_codecs_prim.h; path = ../asn.1/asn_codecs_prim.h; sourceTree = "<group>"; };
   1.403 +		15B0377122B2B81C002D664C /* constraints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constraints.h; path = ../asn.1/constraints.h; sourceTree = "<group>"; };
   1.404 +		15B0377222B2B81C002D664C /* Rollback.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Rollback.c; path = ../asn.1/Rollback.c; sourceTree = "<group>"; };
   1.405 +		15B0377322B2B81C002D664C /* KeySync.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = KeySync.c; path = ../asn.1/KeySync.c; sourceTree = "<group>"; };
   1.406 +		15B0377422B2B81C002D664C /* IdentityList.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IdentityList.c; path = ../asn.1/IdentityList.c; sourceTree = "<group>"; };
   1.407 +		15B0377522B2B81D002D664C /* TID.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TID.c; path = ../asn.1/TID.c; sourceTree = "<group>"; };
   1.408 +		15B0377622B2B81D002D664C /* GroupTrustThisKey.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = GroupTrustThisKey.c; path = ../asn.1/GroupTrustThisKey.c; sourceTree = "<group>"; };
   1.409 +		15B0377722B2B81D002D664C /* per_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = per_encoder.h; path = ../asn.1/per_encoder.h; sourceTree = "<group>"; };
   1.410 +		15B0377822B2B81D002D664C /* GroupKeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = GroupKeys.c; path = ../asn.1/GroupKeys.c; sourceTree = "<group>"; };
   1.411 +		15B0377922B2B81D002D664C /* xer_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xer_decoder.c; path = ../asn.1/xer_decoder.c; sourceTree = "<group>"; };
   1.412 +		15B0377A22B2B81D002D664C /* constr_SEQUENCE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_SEQUENCE.h; path = ../asn.1/constr_SEQUENCE.h; sourceTree = "<group>"; };
   1.413 +		15B0377B22B2B81D002D664C /* constr_CHOICE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_CHOICE.h; path = ../asn.1/constr_CHOICE.h; sourceTree = "<group>"; };
   1.414 +		15B0377C22B2B81D002D664C /* GroupTrustThisKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GroupTrustThisKey.h; path = ../asn.1/GroupTrustThisKey.h; sourceTree = "<group>"; };
   1.415 +		15B0377D22B2B81D002D664C /* constr_TYPE.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_TYPE.c; path = ../asn.1/constr_TYPE.c; sourceTree = "<group>"; };
   1.416 +		15B0377E22B2B81D002D664C /* CommitAcceptOfferer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAcceptOfferer.c; path = ../asn.1/CommitAcceptOfferer.c; sourceTree = "<group>"; };
   1.417 +		15B0377F22B2B81E002D664C /* BIT_STRING.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BIT_STRING.c; path = ../asn.1/BIT_STRING.c; sourceTree = "<group>"; };
   1.418 +		15B0378022B2B81E002D664C /* constr_SET_OF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_SET_OF.c; path = ../asn.1/constr_SET_OF.c; sourceTree = "<group>"; };
   1.419 +		15B0378122B2B81E002D664C /* constraints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constraints.c; path = ../asn.1/constraints.c; sourceTree = "<group>"; };
   1.420 +		15B0378222B2B81E002D664C /* BIT_STRING.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BIT_STRING.h; path = ../asn.1/BIT_STRING.h; sourceTree = "<group>"; };
   1.421 +		15B0378322B2B81E002D664C /* der_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = der_encoder.h; path = ../asn.1/der_encoder.h; sourceTree = "<group>"; };
   1.422 +		15B0378422B2B81E002D664C /* ber_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ber_decoder.h; path = ../asn.1/ber_decoder.h; sourceTree = "<group>"; };
   1.423 +		15B0378522B2B81E002D664C /* NegotiationOpen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NegotiationOpen.h; path = ../asn.1/NegotiationOpen.h; sourceTree = "<group>"; };
   1.424 +		15B0378622B2B81E002D664C /* OCTET_STRING.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OCTET_STRING.h; path = ../asn.1/OCTET_STRING.h; sourceTree = "<group>"; };
   1.425 +		15B0378722B2B81E002D664C /* constr_SEQUENCE_OF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_SEQUENCE_OF.h; path = ../asn.1/constr_SEQUENCE_OF.h; sourceTree = "<group>"; };
   1.426 +		15B0378822B2B81F002D664C /* CommitAccept.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitAccept.h; path = ../asn.1/CommitAccept.h; sourceTree = "<group>"; };
   1.427 +		15B0378922B2B81F002D664C /* ber_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ber_decoder.c; path = ../asn.1/ber_decoder.c; sourceTree = "<group>"; };
   1.428 +		15B0378A22B2B81F002D664C /* INTEGER.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = INTEGER.c; path = ../asn.1/INTEGER.c; sourceTree = "<group>"; };
   1.429 +		15B0378B22B2B81F002D664C /* Version.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Version.c; path = ../asn.1/Version.c; sourceTree = "<group>"; };
   1.430 +		15B0378C22B2B81F002D664C /* per_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = per_decoder.h; path = ../asn.1/per_decoder.h; sourceTree = "<group>"; };
   1.431 +		15B0378D22B2B81F002D664C /* OwnKeysOfferer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = OwnKeysOfferer.c; path = ../asn.1/OwnKeysOfferer.c; sourceTree = "<group>"; };
   1.432 +		15B0378E22B2B81F002D664C /* per_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = per_support.h; path = ../asn.1/per_support.h; sourceTree = "<group>"; };
   1.433 +		15B0378F22B2B81F002D664C /* INTEGER.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = INTEGER.h; path = ../asn.1/INTEGER.h; sourceTree = "<group>"; };
   1.434 +		15B0379022B2B81F002D664C /* Hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Hash.c; path = ../asn.1/Hash.c; sourceTree = "<group>"; };
   1.435 +		15B0379122B2B820002D664C /* Hex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Hex.c; path = ../asn.1/Hex.c; sourceTree = "<group>"; };
   1.436 +		15B0379222B2B820002D664C /* Hex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Hex.h; path = ../asn.1/Hex.h; sourceTree = "<group>"; };
   1.437 +		15B0379322B2B820002D664C /* xer_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xer_encoder.c; path = ../asn.1/xer_encoder.c; sourceTree = "<group>"; };
   1.438 +		15B0379422B2B820002D664C /* per_opentype.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = per_opentype.c; path = ../asn.1/per_opentype.c; sourceTree = "<group>"; };
   1.439 +		15B0379522B2B820002D664C /* xer_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xer_support.h; path = ../asn.1/xer_support.h; sourceTree = "<group>"; };
   1.440 +		15B0379622B2B820002D664C /* asn_SET_OF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = asn_SET_OF.c; path = ../asn.1/asn_SET_OF.c; sourceTree = "<group>"; };
   1.441 +		15B0379722B2B820002D664C /* ber_tlv_length.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ber_tlv_length.h; path = ../asn.1/ber_tlv_length.h; sourceTree = "<group>"; };
   1.442 +		15B0379822B2B820002D664C /* OwnKeysRequester.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OwnKeysRequester.h; path = ../asn.1/OwnKeysRequester.h; sourceTree = "<group>"; };
   1.443 +		15B0379922B2B821002D664C /* constr_SET_OF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_SET_OF.h; path = ../asn.1/constr_SET_OF.h; sourceTree = "<group>"; };
   1.444 +		15B0379A22B2B821002D664C /* asn_codecs_prim.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = asn_codecs_prim.c; path = ../asn.1/asn_codecs_prim.c; sourceTree = "<group>"; };
   1.445 +		15B0379B22B2B821002D664C /* CommitAcceptForGroup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitAcceptForGroup.h; path = ../asn.1/CommitAcceptForGroup.h; sourceTree = "<group>"; };
   1.446 +		15B0379C22B2B821002D664C /* constr_CHOICE.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_CHOICE.c; path = ../asn.1/constr_CHOICE.c; sourceTree = "<group>"; };
   1.447 +		15B0379D22B2B821002D664C /* asn_codecs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_codecs.h; path = ../asn.1/asn_codecs.h; sourceTree = "<group>"; };
   1.448 +		15B0379E22B2B821002D664C /* per_support.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = per_support.c; path = ../asn.1/per_support.c; sourceTree = "<group>"; };
   1.449 +		15B0379F22B2B821002D664C /* asn_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_internal.h; path = ../asn.1/asn_internal.h; sourceTree = "<group>"; };
   1.450 +		15B037A022B2B821002D664C /* NativeInteger.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NativeInteger.c; path = ../asn.1/NativeInteger.c; sourceTree = "<group>"; };
   1.451 +		15B037A122B2B821002D664C /* BOOLEAN.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BOOLEAN.c; path = ../asn.1/BOOLEAN.c; sourceTree = "<group>"; };
   1.452 +		15B037A222B2B822002D664C /* CommitReject.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitReject.c; path = ../asn.1/CommitReject.c; sourceTree = "<group>"; };
   1.453 +		15B037A322B2B822002D664C /* PrintableString.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = PrintableString.c; path = ../asn.1/PrintableString.c; sourceTree = "<group>"; };
   1.454 +		15B037A422B2B822002D664C /* Sync.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sync.h; path = ../asn.1/Sync.h; sourceTree = "<group>"; };
   1.455 +		15B037A522B2B822002D664C /* CommitAcceptRequester.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitAcceptRequester.h; path = ../asn.1/CommitAcceptRequester.h; sourceTree = "<group>"; };
   1.456 +		15B037A622B2B822002D664C /* CommitAcceptForGroup.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAcceptForGroup.c; path = ../asn.1/CommitAcceptForGroup.c; sourceTree = "<group>"; };
   1.457 +		15B037A722B2B822002D664C /* OwnKeysOfferer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OwnKeysOfferer.h; path = ../asn.1/OwnKeysOfferer.h; sourceTree = "<group>"; };
   1.458 +		15B037A822B2B822002D664C /* asn_application.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_application.h; path = ../asn.1/asn_application.h; sourceTree = "<group>"; };
   1.459 +		15B037A922B2B822002D664C /* asn_SEQUENCE_OF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_SEQUENCE_OF.h; path = ../asn.1/asn_SEQUENCE_OF.h; sourceTree = "<group>"; };
   1.460  		430BCC462015EE800077E998 /* pEp_string.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pEp_string.h; path = ../src/pEp_string.h; sourceTree = "<group>"; };
   1.461  		430BCC472015EE800077E998 /* pEp_string.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pEp_string.c; path = ../src/pEp_string.c; sourceTree = "<group>"; };
   1.462  		430D258A1C9ED75A00B94535 /* blacklist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = blacklist.c; path = ../src/blacklist.c; sourceTree = "<group>"; };
   1.463 -		431F04862273223600CCE960 /* CommitAcceptSecond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitAcceptSecond.h; path = ../asn.1/CommitAcceptSecond.h; sourceTree = "<group>"; };
   1.464 -		431F048B2273223600CCE960 /* CommitAcceptSecond.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAcceptSecond.c; path = ../asn.1/CommitAcceptSecond.c; sourceTree = "<group>"; };
   1.465 -		431F048E2273227900CCE960 /* OwnKeysFirst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OwnKeysFirst.h; path = ../asn.1/OwnKeysFirst.h; sourceTree = "<group>"; };
   1.466 -		431F048F2273227900CCE960 /* OwnKeysFirst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = OwnKeysFirst.c; path = ../asn.1/OwnKeysFirst.c; sourceTree = "<group>"; };
   1.467 -		431F0492227322EF00CCE960 /* CommitAcceptFirst.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CommitAcceptFirst.h; path = ../asn.1/CommitAcceptFirst.h; sourceTree = "<group>"; };
   1.468 -		431F0493227322EF00CCE960 /* CommitAcceptFirst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAcceptFirst.c; path = ../asn.1/CommitAcceptFirst.c; sourceTree = "<group>"; };
   1.469 -		431F049C2273235300CCE960 /* GroupTrustThisKey.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GroupTrustThisKey.h; path = ../asn.1/GroupTrustThisKey.h; sourceTree = "<group>"; };
   1.470 -		431F04A12273235300CCE960 /* GroupTrustThisKey.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = GroupTrustThisKey.c; path = ../asn.1/GroupTrustThisKey.c; sourceTree = "<group>"; };
   1.471 -		431F04A4227323A400CCE960 /* OwnKeysSecond.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OwnKeysSecond.h; path = ../asn.1/OwnKeysSecond.h; sourceTree = "<group>"; };
   1.472 -		431F04A5227323A400CCE960 /* OwnKeysSecond.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = OwnKeysSecond.c; path = ../asn.1/OwnKeysSecond.c; sourceTree = "<group>"; };
   1.473 -		431F04A8227323EE00CCE960 /* OwnKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OwnKeys.h; path = ../asn.1/OwnKeys.h; sourceTree = "<group>"; };
   1.474 -		431F04A9227323EE00CCE960 /* OwnKeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = OwnKeys.c; path = ../asn.1/OwnKeys.c; sourceTree = "<group>"; };
   1.475  		431F04B222733A7E00CCE960 /* key_reset.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = key_reset.h; path = ../src/key_reset.h; sourceTree = "<group>"; };
   1.476  		4337082D203C075A004E6547 /* sqlite3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sqlite3.c; path = ../src/sqlite3.c; sourceTree = "<group>"; };
   1.477  		43370832203C075A004E6547 /* sqlite3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sqlite3.h; path = ../src/sqlite3.h; sourceTree = "<group>"; };
   1.478 -		4354FF641D6EDF300033069C /* sync_impl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_impl.c; path = ../src/sync_impl.c; sourceTree = "<group>"; };
   1.479  		438C43962167582400C7425B /* sync_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sync_api.h; path = ../src/sync_api.h; sourceTree = "<group>"; };
   1.480  		438C43AF2167752C00C7425B /* labeled_int_list.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = labeled_int_list.h; path = ../src/labeled_int_list.h; sourceTree = "<group>"; };
   1.481  		438C43B42167752C00C7425B /* labeled_int_list.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = labeled_int_list.c; path = ../src/labeled_int_list.c; sourceTree = "<group>"; };
   1.482 -		43CC349C2276D31A002F77AF /* NegotiationRequest.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NegotiationRequest.c; path = ../asn.1/NegotiationRequest.c; sourceTree = "<group>"; };
   1.483 -		43CC349D2276D31A002F77AF /* NegotiationRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NegotiationRequest.h; path = ../asn.1/NegotiationRequest.h; sourceTree = "<group>"; };
   1.484 -		43CC34A02276D34B002F77AF /* NegotiationOpen.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NegotiationOpen.c; path = ../asn.1/NegotiationOpen.c; sourceTree = "<group>"; };
   1.485 -		43CC34A12276D34C002F77AF /* NegotiationOpen.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NegotiationOpen.h; path = ../asn.1/NegotiationOpen.h; sourceTree = "<group>"; };
   1.486  		43D47A8A225CC60600E97C5B /* pEpTrustWords-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; name = "pEpTrustWords-Info.plist"; path = "/Users/dirk/projects/pEp/pEpEngine/build-mac/pEpTrustWords-Info.plist"; sourceTree = "<absolute>"; };
   1.487  		43F6921C1F164A47009418F5 /* resource_id.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = resource_id.c; path = ../src/resource_id.c; sourceTree = "<group>"; };
   1.488 -		43F73BEB2166269200AB4524 /* PString.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = PString.c; path = ../asn.1/PString.c; sourceTree = "<group>"; };
   1.489 -		43F73BF1216626E100AB4524 /* Sync_func.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_func.c; path = ../src/Sync_func.c; sourceTree = "<group>"; };
   1.490 -		43F73BF5216627CB00AB4524 /* CommitAccept.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAccept.c; path = ../asn.1/CommitAccept.c; sourceTree = "<group>"; };
   1.491 -		43F73BF6216627CC00AB4524 /* TID.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = TID.c; path = ../asn.1/TID.c; sourceTree = "<group>"; };
   1.492 -		43F73BF7216627CC00AB4524 /* KeySync.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = KeySync.c; path = ../asn.1/KeySync.c; sourceTree = "<group>"; };
   1.493 -		43F73BF9216627CC00AB4524 /* Rollback.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Rollback.c; path = ../asn.1/Rollback.c; sourceTree = "<group>"; };
   1.494 -		43F73BFB216627CC00AB4524 /* CommitReject.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitReject.c; path = ../asn.1/CommitReject.c; sourceTree = "<group>"; };
   1.495  		43F73C032166282C00AB4524 /* openpgp_compat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = openpgp_compat.c; path = ../src/openpgp_compat.c; sourceTree = "<group>"; };
   1.496 -		43F73C042166282C00AB4524 /* Sync_event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_event.c; path = ../src/Sync_event.c; sourceTree = "<group>"; };
   1.497  		43F73C052166282C00AB4524 /* key_reset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = key_reset.c; path = ../src/key_reset.c; sourceTree = "<group>"; };
   1.498 -		43F73C062166282C00AB4524 /* sync_codec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_codec.c; path = ../src/sync_codec.c; sourceTree = "<group>"; };
   1.499 -		43F73C072166282C00AB4524 /* KeySync_fsm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = KeySync_fsm.c; path = ../src/KeySync_fsm.c; sourceTree = "<group>"; };
   1.500  		43F73C092166282C00AB4524 /* sync_api.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_api.c; path = ../src/sync_api.c; sourceTree = "<group>"; };
   1.501  		43F73C0A2166282C00AB4524 /* growing_buf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = growing_buf.c; path = ../src/growing_buf.c; sourceTree = "<group>"; };
   1.502 -		43F73C13216628CA00AB4524 /* Sync.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync.c; path = ../asn.1/Sync.c; sourceTree = "<group>"; };
   1.503  		644297BF1BE11C65002BC73B /* pEpTrustWords.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = pEpTrustWords.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
   1.504  		644297C11BE11C65002BC73B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
   1.505  		646788871CEB3D120001F54C /* map_asn1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = map_asn1.c; path = ../src/map_asn1.c; sourceTree = "<group>"; };
   1.506  		646788881CEB3D120001F54C /* map_asn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = map_asn1.h; path = ../src/map_asn1.h; sourceTree = "<group>"; };
   1.507 -		646C40951D510CD700C63EFF /* asn_application.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_application.h; path = ../asn.1/asn_application.h; sourceTree = "<group>"; };
   1.508 -		646C40961D510CD700C63EFF /* asn_codecs_prim.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = asn_codecs_prim.c; path = ../asn.1/asn_codecs_prim.c; sourceTree = "<group>"; };
   1.509 -		646C40971D510CD700C63EFF /* asn_codecs_prim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_codecs_prim.h; path = ../asn.1/asn_codecs_prim.h; sourceTree = "<group>"; };
   1.510 -		646C40981D510CD700C63EFF /* asn_codecs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_codecs.h; path = ../asn.1/asn_codecs.h; sourceTree = "<group>"; };
   1.511 -		646C40991D510CD700C63EFF /* asn_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_internal.h; path = ../asn.1/asn_internal.h; sourceTree = "<group>"; };
   1.512 -		646C409A1D510CD700C63EFF /* asn_SEQUENCE_OF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = asn_SEQUENCE_OF.c; path = ../asn.1/asn_SEQUENCE_OF.c; sourceTree = "<group>"; };
   1.513 -		646C409B1D510CD700C63EFF /* asn_SEQUENCE_OF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_SEQUENCE_OF.h; path = ../asn.1/asn_SEQUENCE_OF.h; sourceTree = "<group>"; };
   1.514 -		646C409C1D510CD700C63EFF /* asn_SET_OF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = asn_SET_OF.c; path = ../asn.1/asn_SET_OF.c; sourceTree = "<group>"; };
   1.515 -		646C409D1D510CD700C63EFF /* asn_SET_OF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_SET_OF.h; path = ../asn.1/asn_SET_OF.h; sourceTree = "<group>"; };
   1.516 -		646C409E1D510CD700C63EFF /* asn_system.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = asn_system.h; path = ../asn.1/asn_system.h; sourceTree = "<group>"; };
   1.517 -		646C409F1D510CD700C63EFF /* Beacon.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Beacon.c; path = ../asn.1/Beacon.c; sourceTree = "<group>"; };
   1.518 -		646C40A01D510CD700C63EFF /* Beacon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Beacon.h; path = ../asn.1/Beacon.h; sourceTree = "<group>"; };
   1.519 -		646C40A11D510CD700C63EFF /* ber_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ber_decoder.c; path = ../asn.1/ber_decoder.c; sourceTree = "<group>"; };
   1.520 -		646C40A21D510CD700C63EFF /* ber_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ber_decoder.h; path = ../asn.1/ber_decoder.h; sourceTree = "<group>"; };
   1.521 -		646C40A31D510CD700C63EFF /* ber_tlv_length.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ber_tlv_length.c; path = ../asn.1/ber_tlv_length.c; sourceTree = "<group>"; };
   1.522 -		646C40A41D510CD700C63EFF /* ber_tlv_length.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ber_tlv_length.h; path = ../asn.1/ber_tlv_length.h; sourceTree = "<group>"; };
   1.523 -		646C40A51D510CD700C63EFF /* ber_tlv_tag.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ber_tlv_tag.c; path = ../asn.1/ber_tlv_tag.c; sourceTree = "<group>"; };
   1.524 -		646C40A61D510CD700C63EFF /* ber_tlv_tag.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ber_tlv_tag.h; path = ../asn.1/ber_tlv_tag.h; sourceTree = "<group>"; };
   1.525 -		646C40A71D510CD700C63EFF /* BIT_STRING.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BIT_STRING.c; path = ../asn.1/BIT_STRING.c; sourceTree = "<group>"; };
   1.526 -		646C40A81D510CD700C63EFF /* BIT_STRING.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BIT_STRING.h; path = ../asn.1/BIT_STRING.h; sourceTree = "<group>"; };
   1.527 -		646C40A91D510CD700C63EFF /* BOOLEAN.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = BOOLEAN.c; path = ../asn.1/BOOLEAN.c; sourceTree = "<group>"; };
   1.528 -		646C40AA1D510CD700C63EFF /* BOOLEAN.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BOOLEAN.h; path = ../asn.1/BOOLEAN.h; sourceTree = "<group>"; };
   1.529 -		646C40AB1D510CD700C63EFF /* constr_CHOICE.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_CHOICE.c; path = ../asn.1/constr_CHOICE.c; sourceTree = "<group>"; };
   1.530 -		646C40AC1D510CD700C63EFF /* constr_CHOICE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_CHOICE.h; path = ../asn.1/constr_CHOICE.h; sourceTree = "<group>"; };
   1.531 -		646C40AD1D510CD700C63EFF /* constr_SEQUENCE_OF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_SEQUENCE_OF.c; path = ../asn.1/constr_SEQUENCE_OF.c; sourceTree = "<group>"; };
   1.532 -		646C40AE1D510CD700C63EFF /* constr_SEQUENCE_OF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_SEQUENCE_OF.h; path = ../asn.1/constr_SEQUENCE_OF.h; sourceTree = "<group>"; };
   1.533 -		646C40AF1D510CD700C63EFF /* constr_SEQUENCE.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_SEQUENCE.c; path = ../asn.1/constr_SEQUENCE.c; sourceTree = "<group>"; };
   1.534 -		646C40B01D510CD700C63EFF /* constr_SEQUENCE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_SEQUENCE.h; path = ../asn.1/constr_SEQUENCE.h; sourceTree = "<group>"; };
   1.535 -		646C40B11D510CD700C63EFF /* constr_SET_OF.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_SET_OF.c; path = ../asn.1/constr_SET_OF.c; sourceTree = "<group>"; };
   1.536 -		646C40B21D510CD700C63EFF /* constr_SET_OF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_SET_OF.h; path = ../asn.1/constr_SET_OF.h; sourceTree = "<group>"; };
   1.537 -		646C40B31D510CD700C63EFF /* constr_TYPE.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constr_TYPE.c; path = ../asn.1/constr_TYPE.c; sourceTree = "<group>"; };
   1.538 -		646C40B41D510CD700C63EFF /* constr_TYPE.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constr_TYPE.h; path = ../asn.1/constr_TYPE.h; sourceTree = "<group>"; };
   1.539 -		646C40B51D510CD700C63EFF /* constraints.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = constraints.c; path = ../asn.1/constraints.c; sourceTree = "<group>"; };
   1.540 -		646C40B61D510CD700C63EFF /* constraints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = constraints.h; path = ../asn.1/constraints.h; sourceTree = "<group>"; };
   1.541 -		646C40B71D510CD700C63EFF /* der_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = der_encoder.c; path = ../asn.1/der_encoder.c; sourceTree = "<group>"; };
   1.542 -		646C40B81D510CD700C63EFF /* der_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = der_encoder.h; path = ../asn.1/der_encoder.h; sourceTree = "<group>"; };
   1.543 -		646C40BB1D510CD700C63EFF /* GroupKeys.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = GroupKeys.c; path = ../asn.1/GroupKeys.c; sourceTree = "<group>"; };
   1.544 -		646C40BC1D510CD700C63EFF /* GroupKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GroupKeys.h; path = ../asn.1/GroupKeys.h; sourceTree = "<group>"; };
   1.545 -		646C40BF1D510CD700C63EFF /* Hash.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Hash.c; path = ../asn.1/Hash.c; sourceTree = "<group>"; };
   1.546 -		646C40C01D510CD700C63EFF /* Hash.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Hash.h; path = ../asn.1/Hash.h; sourceTree = "<group>"; };
   1.547 -		646C40C31D510CD700C63EFF /* Hex.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Hex.c; path = ../asn.1/Hex.c; sourceTree = "<group>"; };
   1.548 -		646C40C41D510CD700C63EFF /* Hex.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Hex.h; path = ../asn.1/Hex.h; sourceTree = "<group>"; };
   1.549 -		646C40C51D510CD700C63EFF /* Identity.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Identity.c; path = ../asn.1/Identity.c; sourceTree = "<group>"; };
   1.550 -		646C40C61D510CD700C63EFF /* Identity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Identity.h; path = ../asn.1/Identity.h; sourceTree = "<group>"; };
   1.551 -		646C40C71D510CD700C63EFF /* IdentityList.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = IdentityList.c; path = ../asn.1/IdentityList.c; sourceTree = "<group>"; };
   1.552 -		646C40C81D510CD800C63EFF /* IdentityList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IdentityList.h; path = ../asn.1/IdentityList.h; sourceTree = "<group>"; };
   1.553 -		646C40C91D510CD800C63EFF /* INTEGER.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = INTEGER.c; path = ../asn.1/INTEGER.c; sourceTree = "<group>"; };
   1.554 -		646C40CA1D510CD800C63EFF /* INTEGER.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = INTEGER.h; path = ../asn.1/INTEGER.h; sourceTree = "<group>"; };
   1.555 -		646C40CB1D510CD800C63EFF /* ISO639-1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = "ISO639-1.c"; path = "../asn.1/ISO639-1.c"; sourceTree = "<group>"; };
   1.556 -		646C40CC1D510CD800C63EFF /* ISO639-1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "ISO639-1.h"; path = "../asn.1/ISO639-1.h"; sourceTree = "<group>"; };
   1.557 -		646C40CD1D510CD800C63EFF /* NativeEnumerated.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NativeEnumerated.c; path = ../asn.1/NativeEnumerated.c; sourceTree = "<group>"; };
   1.558 -		646C40CE1D510CD800C63EFF /* NativeEnumerated.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NativeEnumerated.h; path = ../asn.1/NativeEnumerated.h; sourceTree = "<group>"; };
   1.559 -		646C40CF1D510CD800C63EFF /* NativeInteger.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = NativeInteger.c; path = ../asn.1/NativeInteger.c; sourceTree = "<group>"; };
   1.560 -		646C40D01D510CD800C63EFF /* NativeInteger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NativeInteger.h; path = ../asn.1/NativeInteger.h; sourceTree = "<group>"; };
   1.561 -		646C40D11D510CD800C63EFF /* OCTET_STRING.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = OCTET_STRING.c; path = ../asn.1/OCTET_STRING.c; sourceTree = "<group>"; };
   1.562 -		646C40D21D510CD800C63EFF /* OCTET_STRING.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OCTET_STRING.h; path = ../asn.1/OCTET_STRING.h; sourceTree = "<group>"; };
   1.563 -		646C40D31D510CD800C63EFF /* per_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = per_decoder.c; path = ../asn.1/per_decoder.c; sourceTree = "<group>"; };
   1.564 -		646C40D41D510CD800C63EFF /* per_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = per_decoder.h; path = ../asn.1/per_decoder.h; sourceTree = "<group>"; };
   1.565 -		646C40D51D510CD800C63EFF /* per_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = per_encoder.c; path = ../asn.1/per_encoder.c; sourceTree = "<group>"; };
   1.566 -		646C40D61D510CD800C63EFF /* per_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = per_encoder.h; path = ../asn.1/per_encoder.h; sourceTree = "<group>"; };
   1.567 -		646C40D71D510CD800C63EFF /* per_opentype.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = per_opentype.c; path = ../asn.1/per_opentype.c; sourceTree = "<group>"; };
   1.568 -		646C40D81D510CD800C63EFF /* per_opentype.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = per_opentype.h; path = ../asn.1/per_opentype.h; sourceTree = "<group>"; };
   1.569 -		646C40D91D510CD800C63EFF /* per_support.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = per_support.c; path = ../asn.1/per_support.c; sourceTree = "<group>"; };
   1.570 -		646C40DA1D510CD800C63EFF /* per_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = per_support.h; path = ../asn.1/per_support.h; sourceTree = "<group>"; };
   1.571 -		646C40DB1D510CD800C63EFF /* PrintableString.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = PrintableString.c; path = ../asn.1/PrintableString.c; sourceTree = "<group>"; };
   1.572 -		646C40DC1D510CD800C63EFF /* PrintableString.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrintableString.h; path = ../asn.1/PrintableString.h; sourceTree = "<group>"; };
   1.573 -		646C40E01D510CD800C63EFF /* UTF8String.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = UTF8String.c; path = ../asn.1/UTF8String.c; sourceTree = "<group>"; };
   1.574 -		646C40E11D510CD800C63EFF /* UTF8String.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UTF8String.h; path = ../asn.1/UTF8String.h; sourceTree = "<group>"; };
   1.575 -		646C40E21D510CD800C63EFF /* Version.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Version.c; path = ../asn.1/Version.c; sourceTree = "<group>"; };
   1.576 -		646C40E31D510CD800C63EFF /* Version.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Version.h; path = ../asn.1/Version.h; sourceTree = "<group>"; };
   1.577 -		646C40E41D510CD800C63EFF /* xer_decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xer_decoder.c; path = ../asn.1/xer_decoder.c; sourceTree = "<group>"; };
   1.578 -		646C40E51D510CD800C63EFF /* xer_decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xer_decoder.h; path = ../asn.1/xer_decoder.h; sourceTree = "<group>"; };
   1.579 -		646C40E61D510CD800C63EFF /* xer_encoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xer_encoder.c; path = ../asn.1/xer_encoder.c; sourceTree = "<group>"; };
   1.580 -		646C40E71D510CD800C63EFF /* xer_encoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xer_encoder.h; path = ../asn.1/xer_encoder.h; sourceTree = "<group>"; };
   1.581 -		646C40E81D510CD800C63EFF /* xer_support.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = xer_support.c; path = ../asn.1/xer_support.c; sourceTree = "<group>"; };
   1.582 -		646C40E91D510CD800C63EFF /* xer_support.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = xer_support.h; path = ../asn.1/xer_support.h; sourceTree = "<group>"; };
   1.583 -		646C413E1D510D2C00C63EFF /* sync_actions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_actions.c; path = ../src/sync_actions.c; sourceTree = "<group>"; };
   1.584  		646C414C1D510D8800C63EFF /* baseprotocol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = baseprotocol.c; path = ../src/baseprotocol.c; sourceTree = "<group>"; };
   1.585  		646C414D1D510D8800C63EFF /* baseprotocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = baseprotocol.h; path = ../src/baseprotocol.h; sourceTree = "<group>"; };
   1.586  		64796A3F1B455AA5004B1C24 /* libpEpEngine.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libpEpEngine.a; sourceTree = BUILT_PRODUCTS_DIR; };
   1.587  		64951A1B1BE0FCD800B10E71 /* system.db */ = {isa = PBXFileReference; lastKnownFileType = text; name = system.db; path = ../db/system.db; sourceTree = "<group>"; };
   1.588 -		649DE08A1B45C19100912F72 /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcurl.a; sourceTree = "<group>"; };
   1.589  		64A8264C1B455D0800EECAF0 /* bloblist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bloblist.c; path = ../src/bloblist.c; sourceTree = "<group>"; };
   1.590  		64A8264D1B455D0800EECAF0 /* bloblist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bloblist.h; path = ../src/bloblist.h; sourceTree = "<group>"; };
   1.591  		64A8264E1B455D0800EECAF0 /* cryptotech.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cryptotech.c; path = ../src/cryptotech.c; sourceTree = "<group>"; };
   1.592 @@ -393,9 +412,6 @@
   1.593  		64A8265F1B455D0800EECAF0 /* pEp_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pEp_internal.h; path = ../src/pEp_internal.h; sourceTree = "<group>"; };
   1.594  		64A826601B455D0800EECAF0 /* pEpEngine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pEpEngine.c; path = ../src/pEpEngine.c; sourceTree = "<group>"; };
   1.595  		64A826611B455D0800EECAF0 /* pEpEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pEpEngine.h; path = ../src/pEpEngine.h; sourceTree = "<group>"; };
   1.596 -		64A826621B455D0800EECAF0 /* pgp_netpgp_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pgp_netpgp_internal.h; path = ../src/pgp_netpgp_internal.h; sourceTree = "<group>"; };
   1.597 -		64A826631B455D0800EECAF0 /* pgp_netpgp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pgp_netpgp.c; path = ../src/pgp_netpgp.c; sourceTree = "<group>"; };
   1.598 -		64A826641B455D0800EECAF0 /* pgp_netpgp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pgp_netpgp.h; path = ../src/pgp_netpgp.h; sourceTree = "<group>"; };
   1.599  		64A826651B455D0800EECAF0 /* platform_unix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = platform_unix.c; path = ../src/platform_unix.c; sourceTree = "<group>"; };
   1.600  		64A826661B455D0800EECAF0 /* platform_unix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = platform_unix.h; path = ../src/platform_unix.h; sourceTree = "<group>"; };
   1.601  		64A826691B455D0800EECAF0 /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = platform.h; path = ../src/platform.h; sourceTree = "<group>"; };
   1.602 @@ -411,7 +427,6 @@
   1.603  		64A826751B455D0800EECAF0 /* transport.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = transport.c; path = ../src/transport.c; sourceTree = "<group>"; };
   1.604  		64A826761B455D0800EECAF0 /* transport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = transport.h; path = ../src/transport.h; sourceTree = "<group>"; };
   1.605  		64A826771B455D0800EECAF0 /* wrappers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wrappers.h; path = ../src/wrappers.h; sourceTree = "<group>"; };
   1.606 -		64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = netpgp.xcodeproj; path = "../../netpgp-et/netpgp-xcode/netpgp.xcodeproj"; sourceTree = "<group>"; };
   1.607  		64DA24121B832EBA000BEE80 /* libetpan.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libetpan.xcodeproj; path = "../../libetpan/build-mac/libetpan.xcodeproj"; sourceTree = "<group>"; };
   1.608  		C46EBAE7216E445F0042A6A3 /* base64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = base64.c; path = ../src/base64.c; sourceTree = "<group>"; };
   1.609  		C46EBAEC216E445F0042A6A3 /* base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = base64.h; path = ../src/base64.h; sourceTree = "<group>"; };
   1.610 @@ -422,6 +437,7 @@
   1.611  			isa = PBXFrameworksBuildPhase;
   1.612  			buildActionMask = 2147483647;
   1.613  			files = (
   1.614 +				1549181222B92EA20091B6D6 /* libiconv.2.tbd in Frameworks */,
   1.615  			);
   1.616  			runOnlyForDeploymentPostprocessing = 0;
   1.617  		};
   1.618 @@ -430,134 +446,145 @@
   1.619  			buildActionMask = 2147483647;
   1.620  			files = (
   1.621  				6400FB8B1B8CA1CF005221E3 /* libetpan-ios.a in Frameworks */,
   1.622 -				6400FB861B8CA1C6005221E3 /* libnetpgp.a in Frameworks */,
   1.623 -				649DE08B1B45C19100912F72 /* libcurl.a in Frameworks */,
   1.624 +				1549180022B926700091B6D6 /* libgmp.a in Frameworks */,
   1.625 +				154917FF22B926700091B6D6 /* libhogweed.a in Frameworks */,
   1.626 +				154917FE22B926700091B6D6 /* libsequoia_openpgp_ffi.a in Frameworks */,
   1.627 +				154917FD22B926700091B6D6 /* libnettle.a in Frameworks */,
   1.628  			);
   1.629  			runOnlyForDeploymentPostprocessing = 0;
   1.630  		};
   1.631  /* End PBXFrameworksBuildPhase section */
   1.632  
   1.633  /* Begin PBXGroup section */
   1.634 -		43D47A89225CC60600E97C5B /* Resources-iPad */ = {
   1.635 +		154917EB22B926080091B6D6 /* Frameworks */ = {
   1.636  			isa = PBXGroup;
   1.637  			children = (
   1.638 +				154917F422B926420091B6D6 /* sequoia4ios */,
   1.639  			);
   1.640 -			name = "Resources-iPad";
   1.641 +			name = Frameworks;
   1.642 +			sourceTree = "<group>";
   1.643 +		};
   1.644 +		154917F422B926420091B6D6 /* sequoia4ios */ = {
   1.645 +			isa = PBXGroup;
   1.646 +			children = (
   1.647 +				154917FC22B926700091B6D6 /* libgmp.a */,
   1.648 +				154917FB22B926700091B6D6 /* libhogweed.a */,
   1.649 +				154917F922B9266F0091B6D6 /* libnettle.a */,
   1.650 +				154917FA22B926700091B6D6 /* libsequoia_openpgp_ffi.a */,
   1.651 +			);
   1.652 +			name = sequoia4ios;
   1.653  			sourceTree = "<group>";
   1.654  		};
   1.655  		6406CE811CE382F400C14D77 /* asn.1 */ = {
   1.656  			isa = PBXGroup;
   1.657  			children = (
   1.658 -				43CC34A02276D34B002F77AF /* NegotiationOpen.c */,
   1.659 -				43CC34A12276D34C002F77AF /* NegotiationOpen.h */,
   1.660 -				43CC349C2276D31A002F77AF /* NegotiationRequest.c */,
   1.661 -				43CC349D2276D31A002F77AF /* NegotiationRequest.h */,
   1.662 -				431F04A12273235300CCE960 /* GroupTrustThisKey.c */,
   1.663 -				431F049C2273235300CCE960 /* GroupTrustThisKey.h */,
   1.664 -				431F04A9227323EE00CCE960 /* OwnKeys.c */,
   1.665 -				431F04A8227323EE00CCE960 /* OwnKeys.h */,
   1.666 -				431F048F2273227900CCE960 /* OwnKeysFirst.c */,
   1.667 -				431F048E2273227900CCE960 /* OwnKeysFirst.h */,
   1.668 -				431F04A5227323A400CCE960 /* OwnKeysSecond.c */,
   1.669 -				431F04A4227323A400CCE960 /* OwnKeysSecond.h */,
   1.670 -				431F0493227322EF00CCE960 /* CommitAcceptFirst.c */,
   1.671 -				431F0492227322EF00CCE960 /* CommitAcceptFirst.h */,
   1.672 -				431F048B2273223600CCE960 /* CommitAcceptSecond.c */,
   1.673 -				431F04862273223600CCE960 /* CommitAcceptSecond.h */,
   1.674 -				1521CEEE225C9AEE00FD2AA2 /* CommitAccept.h */,
   1.675 -				1521CEE9225C9AED00FD2AA2 /* CommitAcceptForGroup.c */,
   1.676 -				1521CEEC225C9AEE00FD2AA2 /* CommitAcceptForGroup.h */,
   1.677 -				1521CEF2225C9AEE00FD2AA2 /* CommitReject.h */,
   1.678 -				1521CEF1225C9AEE00FD2AA2 /* KeySync.h */,
   1.679 -				1521CEF0225C9AEE00FD2AA2 /* pdu_collection.c */,
   1.680 -				1521CEEA225C9AEE00FD2AA2 /* PString.h */,
   1.681 -				1521CEEB225C9AEE00FD2AA2 /* Rollback.h */,
   1.682 -				1521CEF4225C9AEE00FD2AA2 /* sync.asn1 */,
   1.683 -				1521CEF3225C9AEE00FD2AA2 /* Sync.h */,
   1.684 -				1521CEF5225C9AEF00FD2AA2 /* TID.h */,
   1.685 -				43F73C13216628CA00AB4524 /* Sync.c */,
   1.686 -				43F73BF5216627CB00AB4524 /* CommitAccept.c */,
   1.687 -				43F73BFB216627CC00AB4524 /* CommitReject.c */,
   1.688 -				43F73BF7216627CC00AB4524 /* KeySync.c */,
   1.689 -				43F73BF9216627CC00AB4524 /* Rollback.c */,
   1.690 -				43F73BF6216627CC00AB4524 /* TID.c */,
   1.691 -				43F73BEB2166269200AB4524 /* PString.c */,
   1.692 -				646C40951D510CD700C63EFF /* asn_application.h */,
   1.693 -				646C40961D510CD700C63EFF /* asn_codecs_prim.c */,
   1.694 -				646C40971D510CD700C63EFF /* asn_codecs_prim.h */,
   1.695 -				646C40981D510CD700C63EFF /* asn_codecs.h */,
   1.696 -				646C40991D510CD700C63EFF /* asn_internal.h */,
   1.697 -				646C409A1D510CD700C63EFF /* asn_SEQUENCE_OF.c */,
   1.698 -				646C409B1D510CD700C63EFF /* asn_SEQUENCE_OF.h */,
   1.699 -				646C409C1D510CD700C63EFF /* asn_SET_OF.c */,
   1.700 -				646C409D1D510CD700C63EFF /* asn_SET_OF.h */,
   1.701 -				646C409E1D510CD700C63EFF /* asn_system.h */,
   1.702 -				646C409F1D510CD700C63EFF /* Beacon.c */,
   1.703 -				646C40A01D510CD700C63EFF /* Beacon.h */,
   1.704 -				646C40A11D510CD700C63EFF /* ber_decoder.c */,
   1.705 -				646C40A21D510CD700C63EFF /* ber_decoder.h */,
   1.706 -				646C40A31D510CD700C63EFF /* ber_tlv_length.c */,
   1.707 -				646C40A41D510CD700C63EFF /* ber_tlv_length.h */,
   1.708 -				646C40A51D510CD700C63EFF /* ber_tlv_tag.c */,
   1.709 -				646C40A61D510CD700C63EFF /* ber_tlv_tag.h */,
   1.710 -				646C40A71D510CD700C63EFF /* BIT_STRING.c */,
   1.711 -				646C40A81D510CD700C63EFF /* BIT_STRING.h */,
   1.712 -				646C40A91D510CD700C63EFF /* BOOLEAN.c */,
   1.713 -				646C40AA1D510CD700C63EFF /* BOOLEAN.h */,
   1.714 -				646C40AB1D510CD700C63EFF /* constr_CHOICE.c */,
   1.715 -				646C40AC1D510CD700C63EFF /* constr_CHOICE.h */,
   1.716 -				646C40AD1D510CD700C63EFF /* constr_SEQUENCE_OF.c */,
   1.717 -				646C40AE1D510CD700C63EFF /* constr_SEQUENCE_OF.h */,
   1.718 -				646C40AF1D510CD700C63EFF /* constr_SEQUENCE.c */,
   1.719 -				646C40B01D510CD700C63EFF /* constr_SEQUENCE.h */,
   1.720 -				646C40B11D510CD700C63EFF /* constr_SET_OF.c */,
   1.721 -				646C40B21D510CD700C63EFF /* constr_SET_OF.h */,
   1.722 -				646C40B31D510CD700C63EFF /* constr_TYPE.c */,
   1.723 -				646C40B41D510CD700C63EFF /* constr_TYPE.h */,
   1.724 -				646C40B51D510CD700C63EFF /* constraints.c */,
   1.725 -				646C40B61D510CD700C63EFF /* constraints.h */,
   1.726 -				646C40B71D510CD700C63EFF /* der_encoder.c */,
   1.727 -				646C40B81D510CD700C63EFF /* der_encoder.h */,
   1.728 -				646C40BB1D510CD700C63EFF /* GroupKeys.c */,
   1.729 -				646C40BC1D510CD700C63EFF /* GroupKeys.h */,
   1.730 -				646C40BF1D510CD700C63EFF /* Hash.c */,
   1.731 -				646C40C01D510CD700C63EFF /* Hash.h */,
   1.732 -				646C40C31D510CD700C63EFF /* Hex.c */,
   1.733 -				646C40C41D510CD700C63EFF /* Hex.h */,
   1.734 -				646C40C51D510CD700C63EFF /* Identity.c */,
   1.735 -				646C40C61D510CD700C63EFF /* Identity.h */,
   1.736 -				646C40C71D510CD700C63EFF /* IdentityList.c */,
   1.737 -				646C40C81D510CD800C63EFF /* IdentityList.h */,
   1.738 -				646C40C91D510CD800C63EFF /* INTEGER.c */,
   1.739 -				646C40CA1D510CD800C63EFF /* INTEGER.h */,
   1.740 -				646C40CB1D510CD800C63EFF /* ISO639-1.c */,
   1.741 -				646C40CC1D510CD800C63EFF /* ISO639-1.h */,
   1.742 -				646C40CD1D510CD800C63EFF /* NativeEnumerated.c */,
   1.743 -				646C40CE1D510CD800C63EFF /* NativeEnumerated.h */,
   1.744 -				646C40CF1D510CD800C63EFF /* NativeInteger.c */,
   1.745 -				646C40D01D510CD800C63EFF /* NativeInteger.h */,
   1.746 -				646C40D11D510CD800C63EFF /* OCTET_STRING.c */,
   1.747 -				646C40D21D510CD800C63EFF /* OCTET_STRING.h */,
   1.748 -				646C40D31D510CD800C63EFF /* per_decoder.c */,
   1.749 -				646C40D41D510CD800C63EFF /* per_decoder.h */,
   1.750 -				646C40D51D510CD800C63EFF /* per_encoder.c */,
   1.751 -				646C40D61D510CD800C63EFF /* per_encoder.h */,
   1.752 -				646C40D71D510CD800C63EFF /* per_opentype.c */,
   1.753 -				646C40D81D510CD800C63EFF /* per_opentype.h */,
   1.754 -				646C40D91D510CD800C63EFF /* per_support.c */,
   1.755 -				646C40DA1D510CD800C63EFF /* per_support.h */,
   1.756 -				646C40DB1D510CD800C63EFF /* PrintableString.c */,
   1.757 -				646C40DC1D510CD800C63EFF /* PrintableString.h */,
   1.758 -				646C40E01D510CD800C63EFF /* UTF8String.c */,
   1.759 -				646C40E11D510CD800C63EFF /* UTF8String.h */,
   1.760 -				646C40E21D510CD800C63EFF /* Version.c */,
   1.761 -				646C40E31D510CD800C63EFF /* Version.h */,
   1.762 -				646C40E41D510CD800C63EFF /* xer_decoder.c */,
   1.763 -				646C40E51D510CD800C63EFF /* xer_decoder.h */,
   1.764 -				646C40E61D510CD800C63EFF /* xer_encoder.c */,
   1.765 -				646C40E71D510CD800C63EFF /* xer_encoder.h */,
   1.766 -				646C40E81D510CD800C63EFF /* xer_support.c */,
   1.767 -				646C40E91D510CD800C63EFF /* xer_support.h */,
   1.768 +				15B037A822B2B822002D664C /* asn_application.h */,
   1.769 +				15B0379A22B2B821002D664C /* asn_codecs_prim.c */,
   1.770 +				15B0377022B2B81C002D664C /* asn_codecs_prim.h */,
   1.771 +				15B0379D22B2B821002D664C /* asn_codecs.h */,
   1.772 +				15B0379F22B2B821002D664C /* asn_internal.h */,
   1.773 +				15B0375722B2B819002D664C /* asn_SEQUENCE_OF.c */,
   1.774 +				15B037A922B2B822002D664C /* asn_SEQUENCE_OF.h */,
   1.775 +				15B0379622B2B820002D664C /* asn_SET_OF.c */,
   1.776 +				15B0376F22B2B81C002D664C /* asn_SET_OF.h */,
   1.777 +				15B0374F22B2B818002D664C /* asn_system.h */,
   1.778 +				15B0374822B2B817002D664C /* Beacon.c */,
   1.779 +				15B0375A22B2B819002D664C /* Beacon.h */,
   1.780 +				15B0378922B2B81F002D664C /* ber_decoder.c */,
   1.781 +				15B0378422B2B81E002D664C /* ber_decoder.h */,
   1.782 +				15B0373F22B2B816002D664C /* ber_tlv_length.c */,
   1.783 +				15B0379722B2B820002D664C /* ber_tlv_length.h */,
   1.784 +				15B0375322B2B818002D664C /* ber_tlv_tag.c */,
   1.785 +				15B0376122B2B81A002D664C /* ber_tlv_tag.h */,
   1.786 +				15B0377F22B2B81E002D664C /* BIT_STRING.c */,
   1.787 +				15B0378222B2B81E002D664C /* BIT_STRING.h */,
   1.788 +				15B037A122B2B821002D664C /* BOOLEAN.c */,
   1.789 +				15B0375422B2B818002D664C /* BOOLEAN.h */,
   1.790 +				15B0374122B2B817002D664C /* CommitAccept.c */,
   1.791 +				15B0378822B2B81F002D664C /* CommitAccept.h */,
   1.792 +				15B037A622B2B822002D664C /* CommitAcceptForGroup.c */,
   1.793 +				15B0379B22B2B821002D664C /* CommitAcceptForGroup.h */,
   1.794 +				15B0377E22B2B81D002D664C /* CommitAcceptOfferer.c */,
   1.795 +				15B0375222B2B818002D664C /* CommitAcceptOfferer.h */,
   1.796 +				15B0376722B2B81B002D664C /* CommitAcceptRequester.c */,
   1.797 +				15B037A522B2B822002D664C /* CommitAcceptRequester.h */,
   1.798 +				15B037A222B2B822002D664C /* CommitReject.c */,
   1.799 +				15B0376822B2B81B002D664C /* CommitReject.h */,
   1.800 +				15B0379C22B2B821002D664C /* constr_CHOICE.c */,
   1.801 +				15B0377B22B2B81D002D664C /* constr_CHOICE.h */,
   1.802 +				15B0375822B2B819002D664C /* constr_SEQUENCE_OF.c */,
   1.803 +				15B0378722B2B81E002D664C /* constr_SEQUENCE_OF.h */,
   1.804 +				15B0374422B2B817002D664C /* constr_SEQUENCE.c */,
   1.805 +				15B0377A22B2B81D002D664C /* constr_SEQUENCE.h */,
   1.806 +				15B0378022B2B81E002D664C /* constr_SET_OF.c */,
   1.807 +				15B0379922B2B821002D664C /* constr_SET_OF.h */,
   1.808 +				15B0377D22B2B81D002D664C /* constr_TYPE.c */,
   1.809 +				15B0376522B2B81A002D664C /* constr_TYPE.h */,
   1.810 +				15B0378122B2B81E002D664C /* constraints.c */,
   1.811 +				15B0377122B2B81C002D664C /* constraints.h */,
   1.812 +				15B0375022B2B818002D664C /* der_encoder.c */,
   1.813 +				15B0378322B2B81E002D664C /* der_encoder.h */,
   1.814 +				15B0377822B2B81D002D664C /* GroupKeys.c */,
   1.815 +				15B0374022B2B817002D664C /* GroupKeys.h */,
   1.816 +				15B0377622B2B81D002D664C /* GroupTrustThisKey.c */,
   1.817 +				15B0377C22B2B81D002D664C /* GroupTrustThisKey.h */,
   1.818 +				15B0379022B2B81F002D664C /* Hash.c */,
   1.819 +				15B0376322B2B81A002D664C /* Hash.h */,
   1.820 +				15B0379122B2B820002D664C /* Hex.c */,
   1.821 +				15B0379222B2B820002D664C /* Hex.h */,
   1.822 +				15B0375622B2B819002D664C /* Identity.c */,
   1.823 +				15B0374722B2B817002D664C /* Identity.h */,
   1.824 +				15B0377422B2B81C002D664C /* IdentityList.c */,
   1.825 +				15B0374B22B2B817002D664C /* IdentityList.h */,
   1.826 +				15B0378A22B2B81F002D664C /* INTEGER.c */,
   1.827 +				15B0378F22B2B81F002D664C /* INTEGER.h */,
   1.828 +				15B0376022B2B81A002D664C /* ISO639-1.c */,
   1.829 +				15B0375D22B2B819002D664C /* ISO639-1.h */,
   1.830 +				15B0377322B2B81C002D664C /* KeySync.c */,
   1.831 +				15B0376B22B2B81B002D664C /* KeySync.h */,
   1.832 +				15B0374E22B2B818002D664C /* NativeEnumerated.c */,
   1.833 +				15B0376422B2B81A002D664C /* NativeEnumerated.h */,
   1.834 +				15B037A022B2B821002D664C /* NativeInteger.c */,
   1.835 +				15B0374D22B2B818002D664C /* NativeInteger.h */,
   1.836 +				15B0374322B2B817002D664C /* NegotiationOpen.c */,
   1.837 +				15B0378522B2B81E002D664C /* NegotiationOpen.h */,
   1.838 +				15B0374622B2B817002D664C /* NegotiationRequest.c */,
   1.839 +				15B0376922B2B81B002D664C /* NegotiationRequest.h */,
   1.840 +				15B0374A22B2B817002D664C /* OCTET_STRING.c */,
   1.841 +				15B0378622B2B81E002D664C /* OCTET_STRING.h */,
   1.842 +				15B0378D22B2B81F002D664C /* OwnKeysOfferer.c */,
   1.843 +				15B037A722B2B822002D664C /* OwnKeysOfferer.h */,
   1.844 +				15B0375122B2B818002D664C /* OwnKeysRequester.c */,
   1.845 +				15B0379822B2B820002D664C /* OwnKeysRequester.h */,
   1.846 +				15B0375922B2B819002D664C /* pdu_collection.c */,
   1.847 +				15B0375C22B2B819002D664C /* per_decoder.c */,
   1.848 +				15B0378C22B2B81F002D664C /* per_decoder.h */,
   1.849 +				15B0376622B2B81B002D664C /* per_encoder.c */,
   1.850 +				15B0377722B2B81D002D664C /* per_encoder.h */,
   1.851 +				15B0379422B2B820002D664C /* per_opentype.c */,
   1.852 +				15B0375522B2B819002D664C /* per_opentype.h */,
   1.853 +				15B0379E22B2B821002D664C /* per_support.c */,
   1.854 +				15B0378E22B2B81F002D664C /* per_support.h */,
   1.855 +				15B037A322B2B822002D664C /* PrintableString.c */,
   1.856 +				15B0375F22B2B81A002D664C /* PrintableString.h */,
   1.857 +				15B0376222B2B81A002D664C /* PString.c */,
   1.858 +				15B0374922B2B817002D664C /* PString.h */,
   1.859 +				15B0377222B2B81C002D664C /* Rollback.c */,
   1.860 +				15B0374222B2B817002D664C /* Rollback.h */,
   1.861 +				15B0374C22B2B818002D664C /* Sync.c */,
   1.862 +				15B037A422B2B822002D664C /* Sync.h */,
   1.863 +				15B0377522B2B81D002D664C /* TID.c */,
   1.864 +				15B0376A22B2B81B002D664C /* TID.h */,
   1.865 +				15B0374522B2B817002D664C /* UTF8String.c */,
   1.866 +				15B0376C22B2B81B002D664C /* UTF8String.h */,
   1.867 +				15B0378B22B2B81F002D664C /* Version.c */,
   1.868 +				15B0376D22B2B81C002D664C /* Version.h */,
   1.869 +				15B0377922B2B81D002D664C /* xer_decoder.c */,
   1.870 +				15B0375E22B2B81A002D664C /* xer_decoder.h */,
   1.871 +				15B0379322B2B820002D664C /* xer_encoder.c */,
   1.872 +				15B0376E22B2B81C002D664C /* xer_encoder.h */,
   1.873 +				15B0375B22B2B819002D664C /* xer_support.c */,
   1.874 +				15B0379522B2B820002D664C /* xer_support.h */,
   1.875  			);
   1.876  			name = asn.1;
   1.877  			sourceTree = "<group>";
   1.878 @@ -580,27 +607,19 @@
   1.879  			path = pEpTrustWords;
   1.880  			sourceTree = "<group>";
   1.881  		};
   1.882 -		6459224E1B8BD32B00A5AF93 /* Products */ = {
   1.883 -			isa = PBXGroup;
   1.884 -			children = (
   1.885 -				645922521B8BD32B00A5AF93 /* libnetpgp.a */,
   1.886 -			);
   1.887 -			name = Products;
   1.888 -			sourceTree = "<group>";
   1.889 -		};
   1.890  		64796A361B455AA5004B1C24 = {
   1.891  			isa = PBXGroup;
   1.892  			children = (
   1.893 -				43D47A89225CC60600E97C5B /* Resources-iPad */,
   1.894 +				1549180D22B92EA20091B6D6 /* libiconv.2.tbd */,
   1.895 +				1549181322B92EA50091B6D6 /* libz.dylib */,
   1.896  				64951A1B1BE0FCD800B10E71 /* system.db */,
   1.897  				64DA24121B832EBA000BEE80 /* libetpan.xcodeproj */,
   1.898 -				64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */,
   1.899 -				649DE08A1B45C19100912F72 /* libcurl.a */,
   1.900  				6406CE811CE382F400C14D77 /* asn.1 */,
   1.901  				64A8264B1B455C5600EECAF0 /* srcref */,
   1.902  				644297C01BE11C65002BC73B /* pEpTrustWords */,
   1.903  				64796A401B455AA5004B1C24 /* Products */,
   1.904  				43D47A8A225CC60600E97C5B /* pEpTrustWords-Info.plist */,
   1.905 +				154917EB22B926080091B6D6 /* Frameworks */,
   1.906  			);
   1.907  			sourceTree = "<group>";
   1.908  		};
   1.909 @@ -616,6 +635,28 @@
   1.910  		64A8264B1B455C5600EECAF0 /* srcref */ = {
   1.911  			isa = PBXGroup;
   1.912  			children = (
   1.913 +				154918A222B9401F0091B6D6 /* aux_mime_msg.c */,
   1.914 +				1549189922B9401E0091B6D6 /* aux_mime_msg.h */,
   1.915 +				154918AA22B940200091B6D6 /* blacklist.h */,
   1.916 +				1549189222B9401D0091B6D6 /* fsm_common.h */,
   1.917 +				154918A422B9401F0091B6D6 /* growing_buf.h */,
   1.918 +				1549189722B9401E0091B6D6 /* KeySync_fsm.c */,
   1.919 +				1549189622B9401E0091B6D6 /* KeySync_fsm.h */,
   1.920 +				154918A322B9401F0091B6D6 /* openpgp_compat.h */,
   1.921 +				154918A122B9401F0091B6D6 /* resource_id.h */,
   1.922 +				1549189322B9401E0091B6D6 /* status_to_string.h */,
   1.923 +				1549189822B9401E0091B6D6 /* Sync_actions.c */,
   1.924 +				1549189C22B9401E0091B6D6 /* sync_codec.c */,
   1.925 +				154918A622B9401F0091B6D6 /* sync_codec.h */,
   1.926 +				1549189E22B9401F0091B6D6 /* Sync_event.c */,
   1.927 +				1549189D22B9401F0091B6D6 /* Sync_event.h */,
   1.928 +				154918A022B9401F0091B6D6 /* Sync_func.c */,
   1.929 +				154918A722B940200091B6D6 /* Sync_func.h */,
   1.930 +				1549189A22B9401E0091B6D6 /* Sync_impl.c */,
   1.931 +				154918A922B940200091B6D6 /* Sync_impl.h */,
   1.932 +				159EF42622B6D3E900149C0C /* pgp_sequoia_internal.h */,
   1.933 +				159EF42422B6D3E900149C0C /* pgp_sequoia.c */,
   1.934 +				159EF42522B6D3E900149C0C /* pgp_sequoia.h */,
   1.935  				C46EBAE7216E445F0042A6A3 /* base64.c */,
   1.936  				C46EBAEC216E445F0042A6A3 /* base64.h */,
   1.937  				438C43B42167752C00C7425B /* labeled_int_list.c */,
   1.938 @@ -624,21 +665,15 @@
   1.939  				43F73C0A2166282C00AB4524 /* growing_buf.c */,
   1.940  				431F04B222733A7E00CCE960 /* key_reset.h */,
   1.941  				43F73C052166282C00AB4524 /* key_reset.c */,
   1.942 -				43F73C072166282C00AB4524 /* KeySync_fsm.c */,
   1.943  				43F73C032166282C00AB4524 /* openpgp_compat.c */,
   1.944  				43F73C092166282C00AB4524 /* sync_api.c */,
   1.945 -				43F73C062166282C00AB4524 /* sync_codec.c */,
   1.946 -				43F73C042166282C00AB4524 /* Sync_event.c */,
   1.947 -				43F73BF1216626E100AB4524 /* Sync_func.c */,
   1.948  				4337082D203C075A004E6547 /* sqlite3.c */,
   1.949  				43370832203C075A004E6547 /* sqlite3.h */,
   1.950  				430BCC472015EE800077E998 /* pEp_string.c */,
   1.951  				430BCC462015EE800077E998 /* pEp_string.h */,
   1.952  				43F6921C1F164A47009418F5 /* resource_id.c */,
   1.953 -				4354FF641D6EDF300033069C /* sync_impl.c */,
   1.954  				646C414C1D510D8800C63EFF /* baseprotocol.c */,
   1.955  				646C414D1D510D8800C63EFF /* baseprotocol.h */,
   1.956 -				646C413E1D510D2C00C63EFF /* sync_actions.c */,
   1.957  				646788871CEB3D120001F54C /* map_asn1.c */,
   1.958  				646788881CEB3D120001F54C /* map_asn1.h */,
   1.959  				430D258A1C9ED75A00B94535 /* blacklist.c */,
   1.960 @@ -664,9 +699,6 @@
   1.961  				64A8265F1B455D0800EECAF0 /* pEp_internal.h */,
   1.962  				64A826601B455D0800EECAF0 /* pEpEngine.c */,
   1.963  				64A826611B455D0800EECAF0 /* pEpEngine.h */,
   1.964 -				64A826621B455D0800EECAF0 /* pgp_netpgp_internal.h */,
   1.965 -				64A826631B455D0800EECAF0 /* pgp_netpgp.c */,
   1.966 -				64A826641B455D0800EECAF0 /* pgp_netpgp.h */,
   1.967  				64A826651B455D0800EECAF0 /* platform_unix.c */,
   1.968  				64A826661B455D0800EECAF0 /* platform_unix.h */,
   1.969  				64A826691B455D0800EECAF0 /* platform.h */,
   1.970 @@ -693,71 +725,83 @@
   1.971  			isa = PBXHeadersBuildPhase;
   1.972  			buildActionMask = 2147483647;
   1.973  			files = (
   1.974 -				646C41031D510CD800C63EFF /* constr_SEQUENCE_OF.h in Headers */,
   1.975 -				1521CEFB225C9AEF00FD2AA2 /* CommitAccept.h in Headers */,
   1.976 -				646C40ED1D510CD800C63EFF /* asn_codecs.h in Headers */,
   1.977 -				646C41371D510CD800C63EFF /* Version.h in Headers */,
   1.978 -				1521CEF8225C9AEF00FD2AA2 /* Rollback.h in Headers */,
   1.979 -				646C412F1D510CD800C63EFF /* per_support.h in Headers */,
   1.980 -				646C41111D510CD800C63EFF /* GroupKeys.h in Headers */,
   1.981 -				646C40F21D510CD800C63EFF /* asn_SET_OF.h in Headers */,
   1.982 -				646C41311D510CD800C63EFF /* PrintableString.h in Headers */,
   1.983 -				431F048C2273223600CCE960 /* CommitAcceptSecond.h in Headers */,
   1.984 -				646C40F51D510CD800C63EFF /* Beacon.h in Headers */,
   1.985 +				15B037D722B2B822002D664C /* UTF8String.h in Headers */,
   1.986 +				15B037EF22B2B822002D664C /* ber_decoder.h in Headers */,
   1.987 +				15B037B822B2B822002D664C /* NativeInteger.h in Headers */,
   1.988  				438C43B52167752C00C7425B /* labeled_int_list.h in Headers */,
   1.989 -				646C40F71D510CD800C63EFF /* ber_decoder.h in Headers */,
   1.990 -				646C41351D510CD800C63EFF /* UTF8String.h in Headers */,
   1.991 -				43CC34A32276D34C002F77AF /* NegotiationOpen.h in Headers */,
   1.992 -				646C40EC1D510CD800C63EFF /* asn_codecs_prim.h in Headers */,
   1.993 -				438C439B2167582500C7425B /* sync_api.h in Headers */,
   1.994 -				646C40EE1D510CD800C63EFF /* asn_internal.h in Headers */,
   1.995 -				646C413B1D510CD800C63EFF /* xer_encoder.h in Headers */,
   1.996 -				431F04A6227323A400CCE960 /* OwnKeysSecond.h in Headers */,
   1.997 -				646C40F01D510CD800C63EFF /* asn_SEQUENCE_OF.h in Headers */,
   1.998 -				43CC349F2276D31A002F77AF /* NegotiationRequest.h in Headers */,
   1.999 -				646C40FD1D510CD800C63EFF /* BIT_STRING.h in Headers */,
  1.1000 -				646C411F1D510CD800C63EFF /* INTEGER.h in Headers */,
  1.1001 -				646C411D1D510CD800C63EFF /* IdentityList.h in Headers */,
  1.1002 -				1521CEFE225C9AEF00FD2AA2 /* KeySync.h in Headers */,
  1.1003 -				646C41011D510CD800C63EFF /* constr_CHOICE.h in Headers */,
  1.1004 -				646C40FB1D510CD800C63EFF /* ber_tlv_tag.h in Headers */,
  1.1005 +				159EF42822B6D3E900149C0C /* pgp_sequoia.h in Headers */,
  1.1006 +				15B037E222B2B822002D664C /* per_encoder.h in Headers */,
  1.1007 +				15B0380F22B2B823002D664C /* Sync.h in Headers */,
  1.1008 +				15B0380422B2B822002D664C /* constr_SET_OF.h in Headers */,
  1.1009 +				15B0381322B2B823002D664C /* asn_application.h in Headers */,
  1.1010 +				15B0380322B2B822002D664C /* OwnKeysRequester.h in Headers */,
  1.1011 +				154918AB22B940200091B6D6 /* fsm_common.h in Headers */,
  1.1012 +				15B037E722B2B822002D664C /* GroupTrustThisKey.h in Headers */,
  1.1013 +				15B037C522B2B822002D664C /* Beacon.h in Headers */,
  1.1014 +				15B0380622B2B822002D664C /* CommitAcceptForGroup.h in Headers */,
  1.1015 +				15B037D622B2B822002D664C /* KeySync.h in Headers */,
  1.1016 +				15B037FD22B2B822002D664C /* Hex.h in Headers */,
  1.1017 +				15B0381222B2B823002D664C /* OwnKeysOfferer.h in Headers */,
  1.1018 +				15B037ED22B2B822002D664C /* BIT_STRING.h in Headers */,
  1.1019 +				15B037DC22B2B822002D664C /* constraints.h in Headers */,
  1.1020 +				154918B622B940200091B6D6 /* Sync_event.h in Headers */,
  1.1021 +				15B037F222B2B822002D664C /* constr_SEQUENCE_OF.h in Headers */,
  1.1022 +				15B0380022B2B822002D664C /* xer_support.h in Headers */,
  1.1023 +				154918C022B940200091B6D6 /* Sync_func.h in Headers */,
  1.1024 +				15B037CC22B2B822002D664C /* ber_tlv_tag.h in Headers */,
  1.1025 +				154918BC22B940200091B6D6 /* openpgp_compat.h in Headers */,
  1.1026 +				154918B222B940200091B6D6 /* aux_mime_msg.h in Headers */,
  1.1027 +				15B0381422B2B823002D664C /* asn_SEQUENCE_OF.h in Headers */,
  1.1028 +				15B037FA22B2B822002D664C /* INTEGER.h in Headers */,
  1.1029 +				15B037F322B2B822002D664C /* CommitAccept.h in Headers */,
  1.1030 +				15B037CF22B2B822002D664C /* NativeEnumerated.h in Headers */,
  1.1031 +				15B037D822B2B822002D664C /* Version.h in Headers */,
  1.1032 +				15B037D022B2B822002D664C /* constr_TYPE.h in Headers */,
  1.1033 +				15B037B422B2B822002D664C /* PString.h in Headers */,
  1.1034 +				15B037F922B2B822002D664C /* per_support.h in Headers */,
  1.1035 +				15B037C022B2B822002D664C /* per_opentype.h in Headers */,
  1.1036 +				15B0380222B2B822002D664C /* ber_tlv_length.h in Headers */,
  1.1037 +				15B037AB22B2B822002D664C /* GroupKeys.h in Headers */,
  1.1038 +				15B037B622B2B822002D664C /* IdentityList.h in Headers */,
  1.1039 +				15B037E622B2B822002D664C /* constr_CHOICE.h in Headers */,
  1.1040  				646C414F1D510D8800C63EFF /* baseprotocol.h in Headers */,
  1.1041 +				15B0381022B2B823002D664C /* CommitAcceptRequester.h in Headers */,
  1.1042 +				15B0380A22B2B822002D664C /* asn_internal.h in Headers */,
  1.1043 +				15B037D922B2B822002D664C /* xer_encoder.h in Headers */,
  1.1044 +				154918C322B940200091B6D6 /* blacklist.h in Headers */,
  1.1045 +				15B037BF22B2B822002D664C /* BOOLEAN.h in Headers */,
  1.1046  				6467888D1CEB3D120001F54C /* map_asn1.h in Headers */,
  1.1047 -				1521CEF9225C9AEF00FD2AA2 /* CommitAcceptForGroup.h in Headers */,
  1.1048 -				646C40F31D510CD800C63EFF /* asn_system.h in Headers */,
  1.1049 +				154918BA22B940200091B6D6 /* resource_id.h in Headers */,
  1.1050 +				15B037BA22B2B822002D664C /* asn_system.h in Headers */,
  1.1051 +				15B037E522B2B822002D664C /* constr_SEQUENCE.h in Headers */,
  1.1052 +				15B037C822B2B822002D664C /* ISO639-1.h in Headers */,
  1.1053 +				15B037C922B2B822002D664C /* xer_decoder.h in Headers */,
  1.1054  				43370834203C075A004E6547 /* sqlite3.h in Headers */,
  1.1055 -				646C410B1D510CD800C63EFF /* constraints.h in Headers */,
  1.1056 -				646C41251D510CD800C63EFF /* NativeInteger.h in Headers */,
  1.1057 -				646C41271D510CD800C63EFF /* OCTET_STRING.h in Headers */,
  1.1058 -				646C41391D510CD800C63EFF /* xer_decoder.h in Headers */,
  1.1059 -				646C40EA1D510CD800C63EFF /* asn_application.h in Headers */,
  1.1060 -				646C41211D510CD800C63EFF /* ISO639-1.h in Headers */,
  1.1061 +				15B037D522B2B822002D664C /* TID.h in Headers */,
  1.1062 +				15B037AD22B2B822002D664C /* Rollback.h in Headers */,
  1.1063 +				154918BF22B940200091B6D6 /* sync_codec.h in Headers */,
  1.1064 +				15B037DB22B2B822002D664C /* asn_codecs_prim.h in Headers */,
  1.1065  				431F04B722733A7E00CCE960 /* key_reset.h in Headers */,
  1.1066 -				646C412D1D510CD800C63EFF /* per_opentype.h in Headers */,
  1.1067 -				646C413D1D510CD800C63EFF /* xer_support.h in Headers */,
  1.1068 -				646C41191D510CD800C63EFF /* Hex.h in Headers */,
  1.1069 -				431F04902273227900CCE960 /* OwnKeysFirst.h in Headers */,
  1.1070 -				646C41051D510CD800C63EFF /* constr_SEQUENCE.h in Headers */,
  1.1071 -				1521CF01225C9AEF00FD2AA2 /* TID.h in Headers */,
  1.1072 -				646C41151D510CD800C63EFF /* Hash.h in Headers */,
  1.1073 -				646C40FF1D510CD800C63EFF /* BOOLEAN.h in Headers */,
  1.1074  				64A8268C1B455D9D00EECAF0 /* pEpEngine.h in Headers */,
  1.1075 -				431F04AA227323EE00CCE960 /* OwnKeys.h in Headers */,
  1.1076 -				646C41091D510CD800C63EFF /* constr_TYPE.h in Headers */,
  1.1077 -				431F0494227322EF00CCE960 /* CommitAcceptFirst.h in Headers */,
  1.1078 +				154918AC22B940200091B6D6 /* status_to_string.h in Headers */,
  1.1079 +				15B037DA22B2B822002D664C /* asn_SET_OF.h in Headers */,
  1.1080 +				154918C222B940200091B6D6 /* Sync_impl.h in Headers */,
  1.1081 +				15B037D422B2B822002D664C /* NegotiationRequest.h in Headers */,
  1.1082  				430BCC482015EE800077E998 /* pEp_string.h in Headers */,
  1.1083 -				1521CEFF225C9AEF00FD2AA2 /* CommitReject.h in Headers */,
  1.1084 -				646C410D1D510CD800C63EFF /* der_encoder.h in Headers */,
  1.1085 -				646C41231D510CD800C63EFF /* NativeEnumerated.h in Headers */,
  1.1086 -				646C41071D510CD800C63EFF /* constr_SET_OF.h in Headers */,
  1.1087 -				1521CEF7225C9AEF00FD2AA2 /* PString.h in Headers */,
  1.1088 -				1521CF00225C9AEF00FD2AA2 /* Sync.h in Headers */,
  1.1089 +				15B037F122B2B822002D664C /* OCTET_STRING.h in Headers */,
  1.1090 +				15B037CE22B2B822002D664C /* Hash.h in Headers */,
  1.1091 +				15B037EE22B2B822002D664C /* der_encoder.h in Headers */,
  1.1092 +				159EF42922B6D3E900149C0C /* pgp_sequoia_internal.h in Headers */,
  1.1093 +				15B037BD22B2B822002D664C /* CommitAcceptOfferer.h in Headers */,
  1.1094 +				15B037CA22B2B822002D664C /* PrintableString.h in Headers */,
  1.1095 +				15B037B222B2B822002D664C /* Identity.h in Headers */,
  1.1096 +				154918BD22B940200091B6D6 /* growing_buf.h in Headers */,
  1.1097 +				15B037D322B2B822002D664C /* CommitReject.h in Headers */,
  1.1098 +				15B0380822B2B822002D664C /* asn_codecs.h in Headers */,
  1.1099 +				154918AF22B940200091B6D6 /* KeySync_fsm.h in Headers */,
  1.1100  				C46EBAEE216E445F0042A6A3 /* base64.h in Headers */,
  1.1101 -				646C411B1D510CD800C63EFF /* Identity.h in Headers */,
  1.1102 -				646C412B1D510CD800C63EFF /* per_encoder.h in Headers */,
  1.1103 -				646C40F91D510CD800C63EFF /* ber_tlv_length.h in Headers */,
  1.1104 -				646C41291D510CD800C63EFF /* per_decoder.h in Headers */,
  1.1105 -				431F04A22273235300CCE960 /* GroupTrustThisKey.h in Headers */,
  1.1106 +				15B037F722B2B822002D664C /* per_decoder.h in Headers */,
  1.1107 +				15B037F022B2B822002D664C /* NegotiationOpen.h in Headers */,
  1.1108  			);
  1.1109  			runOnlyForDeploymentPostprocessing = 0;
  1.1110  		};
  1.1111 @@ -796,7 +840,6 @@
  1.1112  			);
  1.1113  			dependencies = (
  1.1114  				43D47AA1225CC82400E97C5B /* PBXTargetDependency */,
  1.1115 -				645922541B8BD53F00A5AF93 /* PBXTargetDependency */,
  1.1116  				64289E3F1B8B638800FC617B /* PBXTargetDependency */,
  1.1117  			);
  1.1118  			name = pEpEngine;
  1.1119 @@ -810,7 +853,7 @@
  1.1120  		64796A371B455AA5004B1C24 /* Project object */ = {
  1.1121  			isa = PBXProject;
  1.1122  			attributes = {
  1.1123 -				LastUpgradeCheck = 0940;
  1.1124 +				LastUpgradeCheck = 1020;
  1.1125  				ORGANIZATIONNAME = "p≡p Security S.A.";
  1.1126  				TargetAttributes = {
  1.1127  					644297BE1BE11C65002BC73B = {
  1.1128 @@ -837,10 +880,6 @@
  1.1129  					ProductGroup = 64289E2B1B8B630200FC617B /* Products */;
  1.1130  					ProjectRef = 64DA24121B832EBA000BEE80 /* libetpan.xcodeproj */;
  1.1131  				},
  1.1132 -				{
  1.1133 -					ProductGroup = 6459224E1B8BD32B00A5AF93 /* Products */;
  1.1134 -					ProjectRef = 64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */;
  1.1135 -				},
  1.1136  			);
  1.1137  			projectRoot = "";
  1.1138  			targets = (
  1.1139 @@ -872,13 +911,6 @@
  1.1140  			remoteRef = 64289E361B8B630200FC617B /* PBXContainerItemProxy */;
  1.1141  			sourceTree = BUILT_PRODUCTS_DIR;
  1.1142  		};
  1.1143 -		645922521B8BD32B00A5AF93 /* libnetpgp.a */ = {
  1.1144 -			isa = PBXReferenceProxy;
  1.1145 -			fileType = archive.ar;
  1.1146 -			path = libnetpgp.a;
  1.1147 -			remoteRef = 645922511B8BD32B00A5AF93 /* PBXContainerItemProxy */;
  1.1148 -			sourceTree = BUILT_PRODUCTS_DIR;
  1.1149 -		};
  1.1150  /* End PBXReferenceProxy section */
  1.1151  
  1.1152  /* Begin PBXResourcesBuildPhase section */
  1.1153 @@ -910,7 +942,7 @@
  1.1154  			);
  1.1155  			runOnlyForDeploymentPostprocessing = 0;
  1.1156  			shellPath = /bin/bash;
  1.1157 -			shellScript = "export LANG=en_US.UTF-8\n\necho \"warning: ***************************************\"\necho \"warning: *** Generate files: ACTION: $ACTION ***\"\necho \"warning: ***************************************\"\n\ncd \"$SRCROOT/..\"\n\nbash -l -c \"gmake -C sync\"\nbash -l -c \"gmake -C asn.1 Sync.c\"\n";
  1.1158 +			shellScript = "export LANG=en_US.UTF-8\n\necho \"***************************************\"\necho \"*** Generate files: ACTION: $ACTION ***\"\necho \"***************************************\"\n\ncd \"$SRCROOT/..\"\n\nbash -l -c \"gmake -C sync\"\nbash -l -c \"gmake -C asn.1 Sync.c\"\n";
  1.1159  		};
  1.1160  		644297C61BE11D00002BC73B /* ShellScript */ = {
  1.1161  			isa = PBXShellScriptBuildPhase;
  1.1162 @@ -940,93 +972,93 @@
  1.1163  			buildActionMask = 2147483647;
  1.1164  			files = (
  1.1165  				64A826871B455D0800EECAF0 /* stringpair.c in Sources */,
  1.1166 -				43F73C0E2166282C00AB4524 /* sync_codec.c in Sources */,
  1.1167 -				1521CEF6225C9AEF00FD2AA2 /* CommitAcceptForGroup.c in Sources */,
  1.1168 -				431F04912273227900CCE960 /* OwnKeysFirst.c in Sources */,
  1.1169 -				431F04A32273235300CCE960 /* GroupTrustThisKey.c in Sources */,
  1.1170 -				646C41341D510CD800C63EFF /* UTF8String.c in Sources */,
  1.1171 +				15B037C122B2B822002D664C /* Identity.c in Sources */,
  1.1172 +				15B037B522B2B822002D664C /* OCTET_STRING.c in Sources */,
  1.1173  				64A826831B455D0800EECAF0 /* platform_unix.c in Sources */,
  1.1174 -				646C40F81D510CD800C63EFF /* ber_tlv_length.c in Sources */,
  1.1175 -				43F73BF2216626E100AB4524 /* Sync_func.c in Sources */,
  1.1176 -				431F04A7227323A400CCE960 /* OwnKeysSecond.c in Sources */,
  1.1177 -				646C411C1D510CD800C63EFF /* IdentityList.c in Sources */,
  1.1178 -				646C41301D510CD800C63EFF /* PrintableString.c in Sources */,
  1.1179 +				15B0380D22B2B822002D664C /* CommitReject.c in Sources */,
  1.1180 +				15B0380B22B2B822002D664C /* NativeInteger.c in Sources */,
  1.1181 +				154918B322B940200091B6D6 /* Sync_impl.c in Sources */,
  1.1182 +				15B037E322B2B822002D664C /* GroupKeys.c in Sources */,
  1.1183 +				15B037B122B2B822002D664C /* NegotiationRequest.c in Sources */,
  1.1184 +				15B037FC22B2B822002D664C /* Hex.c in Sources */,
  1.1185 +				15B0380722B2B822002D664C /* constr_CHOICE.c in Sources */,
  1.1186 +				15B037B922B2B822002D664C /* NativeEnumerated.c in Sources */,
  1.1187 +				15B037B022B2B822002D664C /* UTF8String.c in Sources */,
  1.1188 +				15B037BE22B2B822002D664C /* ber_tlv_tag.c in Sources */,
  1.1189 +				15B037FE22B2B822002D664C /* xer_encoder.c in Sources */,
  1.1190 +				159EF42722B6D3E900149C0C /* pgp_sequoia.c in Sources */,
  1.1191  				64A8267B1B455D0800EECAF0 /* etpan_mime.c in Sources */,
  1.1192 +				15B037AC22B2B822002D664C /* CommitAccept.c in Sources */,
  1.1193  				64A8267A1B455D0800EECAF0 /* email.c in Sources */,
  1.1194 +				15B037C422B2B822002D664C /* pdu_collection.c in Sources */,
  1.1195 +				15B037E422B2B822002D664C /* xer_decoder.c in Sources */,
  1.1196 +				15B037BC22B2B822002D664C /* OwnKeysRequester.c in Sources */,
  1.1197  				438C43B62167752C00C7425B /* labeled_int_list.c in Sources */,
  1.1198 -				646C41261D510CD800C63EFF /* OCTET_STRING.c in Sources */,
  1.1199 -				646C41141D510CD800C63EFF /* Hash.c in Sources */,
  1.1200 -				43CC349E2276D31A002F77AF /* NegotiationRequest.c in Sources */,
  1.1201 -				43F73BF02166269200AB4524 /* PString.c in Sources */,
  1.1202 +				15B037E822B2B822002D664C /* constr_TYPE.c in Sources */,
  1.1203  				64A826861B455D0800EECAF0 /* stringlist.c in Sources */,
  1.1204 -				4354FF651D6EDF300033069C /* sync_impl.c in Sources */,
  1.1205 +				15B037FB22B2B822002D664C /* Hash.c in Sources */,
  1.1206 +				154918BB22B940200091B6D6 /* aux_mime_msg.c in Sources */,
  1.1207 +				15B037CD22B2B822002D664C /* PString.c in Sources */,
  1.1208 +				15B037F622B2B822002D664C /* Version.c in Sources */,
  1.1209 +				15B037C622B2B822002D664C /* xer_support.c in Sources */,
  1.1210 +				15B037EC22B2B822002D664C /* constraints.c in Sources */,
  1.1211 +				15B0380522B2B822002D664C /* asn_codecs_prim.c in Sources */,
  1.1212  				64A8267E1B455D0800EECAF0 /* message_api.c in Sources */,
  1.1213 -				646C41361D510CD800C63EFF /* Version.c in Sources */,
  1.1214 -				646C41081D510CD800C63EFF /* constr_TYPE.c in Sources */,
  1.1215 -				646C40FE1D510CD800C63EFF /* BOOLEAN.c in Sources */,
  1.1216 -				646C41001D510CD800C63EFF /* constr_CHOICE.c in Sources */,
  1.1217 -				64A826821B455D0800EECAF0 /* pgp_netpgp.c in Sources */,
  1.1218 -				646C41101D510CD800C63EFF /* GroupKeys.c in Sources */,
  1.1219 -				646C40EF1D510CD800C63EFF /* asn_SEQUENCE_OF.c in Sources */,
  1.1220 +				15B037D122B2B822002D664C /* per_encoder.c in Sources */,
  1.1221 +				15B037CB22B2B822002D664C /* ISO639-1.c in Sources */,
  1.1222 +				15B037AF22B2B822002D664C /* constr_SEQUENCE.c in Sources */,
  1.1223 +				15B037B722B2B822002D664C /* Sync.c in Sources */,
  1.1224  				64A826891B455D0800EECAF0 /* trans_auto.c in Sources */,
  1.1225 -				646C410C1D510CD800C63EFF /* der_encoder.c in Sources */,
  1.1226 +				15B0380922B2B822002D664C /* per_support.c in Sources */,
  1.1227 +				15B037D222B2B822002D664C /* CommitAcceptRequester.c in Sources */,
  1.1228 +				15B037E122B2B822002D664C /* GroupTrustThisKey.c in Sources */,
  1.1229  				43F73C112166282C00AB4524 /* sync_api.c in Sources */,
  1.1230 -				646C41381D510CD800C63EFF /* xer_decoder.c in Sources */,
  1.1231 -				43F73BFE216627CC00AB4524 /* KeySync.c in Sources */,
  1.1232 -				646C41181D510CD800C63EFF /* Hex.c in Sources */,
  1.1233  				64A8267D1B455D0800EECAF0 /* keymanagement.c in Sources */,
  1.1234 -				646C40EB1D510CD800C63EFF /* asn_codecs_prim.c in Sources */,
  1.1235 -				646C41451D510D2C00C63EFF /* sync_actions.c in Sources */,
  1.1236 -				646C40F61D510CD800C63EFF /* ber_decoder.c in Sources */,
  1.1237 -				646C40F11D510CD800C63EFF /* asn_SET_OF.c in Sources */,
  1.1238 -				646C413A1D510CD800C63EFF /* xer_encoder.c in Sources */,
  1.1239 -				431F04AB227323EE00CCE960 /* OwnKeys.c in Sources */,
  1.1240 -				43F73BFD216627CC00AB4524 /* TID.c in Sources */,
  1.1241 -				646C41021D510CD800C63EFF /* constr_SEQUENCE_OF.c in Sources */,
  1.1242 -				646C410A1D510CD800C63EFF /* constraints.c in Sources */,
  1.1243  				64A8267C1B455D0800EECAF0 /* identity_list.c in Sources */,
  1.1244 -				646C40FC1D510CD800C63EFF /* BIT_STRING.c in Sources */,
  1.1245 -				646C40F41D510CD800C63EFF /* Beacon.c in Sources */,
  1.1246  				43F73C0D2166282C00AB4524 /* key_reset.c in Sources */,
  1.1247 -				43F73BFC216627CC00AB4524 /* CommitAccept.c in Sources */,
  1.1248 -				646C411E1D510CD800C63EFF /* INTEGER.c in Sources */,
  1.1249 -				646C413C1D510CD800C63EFF /* xer_support.c in Sources */,
  1.1250 +				15B0380C22B2B822002D664C /* BOOLEAN.c in Sources */,
  1.1251  				64A8268A1B455D0800EECAF0 /* transport.c in Sources */,
  1.1252 -				646C41201D510CD800C63EFF /* ISO639-1.c in Sources */,
  1.1253 +				15B037EA22B2B822002D664C /* BIT_STRING.c in Sources */,
  1.1254 +				15B037F522B2B822002D664C /* INTEGER.c in Sources */,
  1.1255 +				15B037C222B2B822002D664C /* asn_SEQUENCE_OF.c in Sources */,
  1.1256  				64A826791B455D0800EECAF0 /* cryptotech.c in Sources */,
  1.1257 -				43F73C0F2166282C00AB4524 /* KeySync_fsm.c in Sources */,
  1.1258 -				646C412A1D510CD800C63EFF /* per_encoder.c in Sources */,
  1.1259 -				646C412E1D510CD800C63EFF /* per_support.c in Sources */,
  1.1260 -				43F73C0C2166282C00AB4524 /* Sync_event.c in Sources */,
  1.1261  				64A826781B455D0800EECAF0 /* bloblist.c in Sources */,
  1.1262 +				15B0381122B2B823002D664C /* CommitAcceptForGroup.c in Sources */,
  1.1263  				C46EBAED216E445F0042A6A3 /* base64.c in Sources */,
  1.1264  				430BCC492015EE800077E998 /* pEp_string.c in Sources */,
  1.1265 -				43F73C00216627CC00AB4524 /* Rollback.c in Sources */,
  1.1266 -				646C41041D510CD800C63EFF /* constr_SEQUENCE.c in Sources */,
  1.1267 -				43F73C14216628CA00AB4524 /* Sync.c in Sources */,
  1.1268 +				15B037EB22B2B822002D664C /* constr_SET_OF.c in Sources */,
  1.1269 +				15B037DD22B2B822002D664C /* Rollback.c in Sources */,
  1.1270  				43F73C0B2166282C00AB4524 /* openpgp_compat.c in Sources */,
  1.1271 +				15B037F422B2B822002D664C /* ber_decoder.c in Sources */,
  1.1272 +				154918B022B940200091B6D6 /* KeySync_fsm.c in Sources */,
  1.1273  				43370833203C075A004E6547 /* sqlite3.c in Sources */,
  1.1274 -				43F73C02216627CC00AB4524 /* CommitReject.c in Sources */,
  1.1275 +				15B0380122B2B822002D664C /* asn_SET_OF.c in Sources */,
  1.1276 +				154918B522B940200091B6D6 /* sync_codec.c in Sources */,
  1.1277 +				15B037DE22B2B822002D664C /* KeySync.c in Sources */,
  1.1278 +				15B037C322B2B822002D664C /* constr_SEQUENCE_OF.c in Sources */,
  1.1279 +				15B037DF22B2B822002D664C /* IdentityList.c in Sources */,
  1.1280 +				15B037AE22B2B822002D664C /* NegotiationOpen.c in Sources */,
  1.1281 +				154918B122B940200091B6D6 /* Sync_actions.c in Sources */,
  1.1282 +				15B037B322B2B822002D664C /* Beacon.c in Sources */,
  1.1283  				64A826881B455D0800EECAF0 /* timestamp.c in Sources */,
  1.1284 -				646C41221D510CD800C63EFF /* NativeEnumerated.c in Sources */,
  1.1285 +				15B037BB22B2B822002D664C /* der_encoder.c in Sources */,
  1.1286 +				15B037E022B2B822002D664C /* TID.c in Sources */,
  1.1287 +				154918B722B940200091B6D6 /* Sync_event.c in Sources */,
  1.1288  				43F6921D1F164A47009418F5 /* resource_id.c in Sources */,
  1.1289 +				15B037AA22B2B822002D664C /* ber_tlv_length.c in Sources */,
  1.1290 +				15B037F822B2B822002D664C /* OwnKeysOfferer.c in Sources */,
  1.1291  				430D258B1C9ED75A00B94535 /* blacklist.c in Sources */,
  1.1292 -				431F0495227322EF00CCE960 /* CommitAcceptFirst.c in Sources */,
  1.1293 +				15B0380E22B2B822002D664C /* PrintableString.c in Sources */,
  1.1294 +				15B037E922B2B822002D664C /* CommitAcceptOfferer.c in Sources */,
  1.1295 +				154918B922B940200091B6D6 /* Sync_func.c in Sources */,
  1.1296  				646C414E1D510D8800C63EFF /* baseprotocol.c in Sources */,
  1.1297 +				15B037C722B2B822002D664C /* per_decoder.c in Sources */,
  1.1298  				6467888C1CEB3D120001F54C /* map_asn1.c in Sources */,
  1.1299 -				646C40FA1D510CD800C63EFF /* ber_tlv_tag.c in Sources */,
  1.1300 -				646C41241D510CD800C63EFF /* NativeInteger.c in Sources */,
  1.1301 -				1521CEFD225C9AEF00FD2AA2 /* pdu_collection.c in Sources */,
  1.1302 -				646C41061D510CD800C63EFF /* constr_SET_OF.c in Sources */,
  1.1303  				43F73C122166282C00AB4524 /* growing_buf.c in Sources */,
  1.1304 -				646C412C1D510CD800C63EFF /* per_opentype.c in Sources */,
  1.1305 -				646C41281D510CD800C63EFF /* per_decoder.c in Sources */,
  1.1306  				64A826801B455D0800EECAF0 /* mime.c in Sources */,
  1.1307 -				431F048D2273223600CCE960 /* CommitAcceptSecond.c in Sources */,
  1.1308  				64A8267F1B455D0800EECAF0 /* message.c in Sources */,
  1.1309 -				43CC34A22276D34C002F77AF /* NegotiationOpen.c in Sources */,
  1.1310 -				646C411A1D510CD800C63EFF /* Identity.c in Sources */,
  1.1311  				64A826811B455D0800EECAF0 /* pEpEngine.c in Sources */,
  1.1312 +				15B037FF22B2B822002D664C /* per_opentype.c in Sources */,
  1.1313  			);
  1.1314  			runOnlyForDeploymentPostprocessing = 0;
  1.1315  		};
  1.1316 @@ -1043,11 +1075,6 @@
  1.1317  			name = "libetpan ios";
  1.1318  			targetProxy = 64289E3E1B8B638800FC617B /* PBXContainerItemProxy */;
  1.1319  		};
  1.1320 -		645922541B8BD53F00A5AF93 /* PBXTargetDependency */ = {
  1.1321 -			isa = PBXTargetDependency;
  1.1322 -			name = netpgp;
  1.1323 -			targetProxy = 645922531B8BD53F00A5AF93 /* PBXContainerItemProxy */;
  1.1324 -		};
  1.1325  /* End PBXTargetDependency section */
  1.1326  
  1.1327  /* Begin XCBuildConfiguration section */
  1.1328 @@ -1075,6 +1102,7 @@
  1.1329  			isa = XCBuildConfiguration;
  1.1330  			buildSettings = {
  1.1331  				ALWAYS_SEARCH_USER_PATHS = NO;
  1.1332 +				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
  1.1333  				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  1.1334  				CLANG_CXX_LIBRARY = "libc++";
  1.1335  				CLANG_ENABLE_MODULES = YES;
  1.1336 @@ -1106,13 +1134,11 @@
  1.1337  				GCC_DYNAMIC_NO_PIC = NO;
  1.1338  				GCC_NO_COMMON_BLOCKS = YES;
  1.1339  				GCC_OPTIMIZATION_LEVEL = 0;
  1.1340 -				GCC_PREPROCESSOR_DEFINITIONS = (
  1.1341 -					"DEBUG=1",
  1.1342 -					"USE_NETPGP=1",
  1.1343 -				);
  1.1344 +				GCC_PREPROCESSOR_DEFINITIONS = "USE_SEQUOIA=1";
  1.1345  				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
  1.1346  				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  1.1347  				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  1.1348 +				GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
  1.1349  				GCC_WARN_UNDECLARED_SELECTOR = YES;
  1.1350  				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  1.1351  				GCC_WARN_UNUSED_FUNCTION = YES;
  1.1352 @@ -1120,10 +1146,9 @@
  1.1353  				HEADER_SEARCH_PATHS = (
  1.1354  					"$(inherited)",
  1.1355  					"$(SRCROOT)",
  1.1356 -					"$(SRCROOT)/../../netpgp-et/include/",
  1.1357 -					"$(SRCROOT)/../../netpgp-et/src/",
  1.1358  					"$(SRCROOT)/../../OpenSSL-for-iPhone/include",
  1.1359  					"$(SRCROOT)/../asn.1/",
  1.1360 +					"$(PROJECT_DIR)/../../sequoia4ios/build/include",
  1.1361  				);
  1.1362  				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
  1.1363  				MTL_ENABLE_DEBUG_INFO = YES;
  1.1364 @@ -1138,6 +1163,7 @@
  1.1365  			isa = XCBuildConfiguration;
  1.1366  			buildSettings = {
  1.1367  				ALWAYS_SEARCH_USER_PATHS = NO;
  1.1368 +				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
  1.1369  				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
  1.1370  				CLANG_CXX_LIBRARY = "libc++";
  1.1371  				CLANG_ENABLE_MODULES = YES;
  1.1372 @@ -1167,9 +1193,10 @@
  1.1373  				ENABLE_STRICT_OBJC_MSGSEND = YES;
  1.1374  				GCC_C_LANGUAGE_STANDARD = gnu99;
  1.1375  				GCC_NO_COMMON_BLOCKS = YES;
  1.1376 -				GCC_PREPROCESSOR_DEFINITIONS = "USE_NETPGP=1";
  1.1377 +				GCC_PREPROCESSOR_DEFINITIONS = "USE_SEQUOIA=1";
  1.1378  				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
  1.1379  				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
  1.1380 +				GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
  1.1381  				GCC_WARN_UNDECLARED_SELECTOR = YES;
  1.1382  				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
  1.1383  				GCC_WARN_UNUSED_FUNCTION = YES;
  1.1384 @@ -1177,10 +1204,9 @@
  1.1385  				HEADER_SEARCH_PATHS = (
  1.1386  					"$(inherited)",
  1.1387  					"$(SRCROOT)",
  1.1388 -					"$(SRCROOT)/../../netpgp-et/include/",
  1.1389 -					"$(SRCROOT)/../../netpgp-et/src/",
  1.1390  					"$(SRCROOT)/../../OpenSSL-for-iPhone/include",
  1.1391  					"$(SRCROOT)/../asn.1/",
  1.1392 +					"$(PROJECT_DIR)/../../sequoia4ios/build/include",
  1.1393  				);
  1.1394  				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
  1.1395  				MTL_ENABLE_DEBUG_INFO = NO;
  1.1396 @@ -1195,11 +1221,15 @@
  1.1397  		64796A541B455AA5004B1C24 /* Debug */ = {
  1.1398  			isa = XCBuildConfiguration;
  1.1399  			buildSettings = {
  1.1400 +				GCC_PREPROCESSOR_DEFINITIONS = (
  1.1401 +					"$(inherited)",
  1.1402 +					"DEBUG=1",
  1.1403 +				);
  1.1404  				HEADER_SEARCH_PATHS = "$(inherited)";
  1.1405  				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  1.1406  				LIBRARY_SEARCH_PATHS = (
  1.1407  					"$(inherited)",
  1.1408 -					"$(PROJECT_DIR)",
  1.1409 +					"$(PROJECT_DIR)/../../Sequoia4iOS/build/lib",
  1.1410  				);
  1.1411  				New_Setting = "";
  1.1412  				ONLY_ACTIVE_ARCH = NO;
  1.1413 @@ -1209,8 +1239,6 @@
  1.1414  				USER_HEADER_SEARCH_PATHS = (
  1.1415  					"$(PROJECT_DIR)/../src",
  1.1416  					"$(PROJECT_DIR)",
  1.1417 -					"$(PROJECT_DIR)/../../netpgp-et/include/",
  1.1418 -					"$(PROJECT_DIR)/../../netpgp-et/src/",
  1.1419  					"$(PROJECT_DIR)/../../OpenSSL-for-iPhone/include",
  1.1420  					"$(PROJECT_DIR)/../asn.1/",
  1.1421  					"$(inherited)",
  1.1422 @@ -1221,11 +1249,12 @@
  1.1423  		64796A551B455AA5004B1C24 /* Release */ = {
  1.1424  			isa = XCBuildConfiguration;
  1.1425  			buildSettings = {
  1.1426 +				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
  1.1427  				HEADER_SEARCH_PATHS = "$(inherited)";
  1.1428  				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
  1.1429  				LIBRARY_SEARCH_PATHS = (
  1.1430  					"$(inherited)",
  1.1431 -					"$(PROJECT_DIR)",
  1.1432 +					"$(PROJECT_DIR)/../../Sequoia4iOS/build/lib",
  1.1433  				);
  1.1434  				New_Setting = "";
  1.1435  				OTHER_LDFLAGS = "-ObjC";
  1.1436 @@ -1234,8 +1263,6 @@
  1.1437  				USER_HEADER_SEARCH_PATHS = (
  1.1438  					"$(PROJECT_DIR)/../src",
  1.1439  					"$(PROJECT_DIR)",
  1.1440 -					"$(PROJECT_DIR)/../../netpgp-et/include/",
  1.1441 -					"$(PROJECT_DIR)/../../netpgp-et/src/",
  1.1442  					"$(PROJECT_DIR)/../../OpenSSL-for-iPhone/include",
  1.1443  					"$(PROJECT_DIR)/../asn.1/",
  1.1444  					"$(inherited)",
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/build-mac/pEpEngine.xcodeproj/xcshareddata/xcschemes/pEpEngine.xcscheme	Wed Jun 26 11:35:54 2019 +0200
     2.3 @@ -0,0 +1,103 @@
     2.4 +<?xml version="1.0" encoding="UTF-8"?>
     2.5 +<Scheme
     2.6 +   LastUpgradeVersion = "1020"
     2.7 +   version = "1.3">
     2.8 +   <BuildAction
     2.9 +      parallelizeBuildables = "NO"
    2.10 +      buildImplicitDependencies = "YES">
    2.11 +      <BuildActionEntries>
    2.12 +         <BuildActionEntry
    2.13 +            buildForTesting = "YES"
    2.14 +            buildForRunning = "YES"
    2.15 +            buildForProfiling = "YES"
    2.16 +            buildForArchiving = "YES"
    2.17 +            buildForAnalyzing = "YES">
    2.18 +            <BuildableReference
    2.19 +               BuildableIdentifier = "primary"
    2.20 +               BlueprintIdentifier = "159EF1E022B6AB0700149C0C"
    2.21 +               BuildableName = "sequoia.framework"
    2.22 +               BlueprintName = "sequoia"
    2.23 +               ReferencedContainer = "container:../../Sequoia4iOS/Sequoia4iOS.xcodeproj">
    2.24 +            </BuildableReference>
    2.25 +         </BuildActionEntry>
    2.26 +         <BuildActionEntry
    2.27 +            buildForTesting = "YES"
    2.28 +            buildForRunning = "YES"
    2.29 +            buildForProfiling = "YES"
    2.30 +            buildForArchiving = "YES"
    2.31 +            buildForAnalyzing = "YES">
    2.32 +            <BuildableReference
    2.33 +               BuildableIdentifier = "primary"
    2.34 +               BlueprintIdentifier = "64796A3E1B455AA5004B1C24"
    2.35 +               BuildableName = "libpEpEngine.a"
    2.36 +               BlueprintName = "pEpEngine"
    2.37 +               ReferencedContainer = "container:pEpEngine.xcodeproj">
    2.38 +            </BuildableReference>
    2.39 +         </BuildActionEntry>
    2.40 +      </BuildActionEntries>
    2.41 +   </BuildAction>
    2.42 +   <TestAction
    2.43 +      buildConfiguration = "Debug"
    2.44 +      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
    2.45 +      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
    2.46 +      shouldUseLaunchSchemeArgsEnv = "YES">
    2.47 +      <Testables>
    2.48 +      </Testables>
    2.49 +      <MacroExpansion>
    2.50 +         <BuildableReference
    2.51 +            BuildableIdentifier = "primary"
    2.52 +            BlueprintIdentifier = "64796A3E1B455AA5004B1C24"
    2.53 +            BuildableName = "libpEpEngine.a"
    2.54 +            BlueprintName = "pEpEngine"
    2.55 +            ReferencedContainer = "container:pEpEngine.xcodeproj">
    2.56 +         </BuildableReference>
    2.57 +      </MacroExpansion>
    2.58 +      <AdditionalOptions>
    2.59 +      </AdditionalOptions>
    2.60 +   </TestAction>
    2.61 +   <LaunchAction
    2.62 +      buildConfiguration = "Debug"
    2.63 +      selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
    2.64 +      selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
    2.65 +      launchStyle = "0"
    2.66 +      useCustomWorkingDirectory = "NO"
    2.67 +      ignoresPersistentStateOnLaunch = "NO"
    2.68 +      debugDocumentVersioning = "YES"
    2.69 +      debugServiceExtension = "internal"
    2.70 +      allowLocationSimulation = "YES">
    2.71 +      <MacroExpansion>
    2.72 +         <BuildableReference
    2.73 +            BuildableIdentifier = "primary"
    2.74 +            BlueprintIdentifier = "64796A3E1B455AA5004B1C24"
    2.75 +            BuildableName = "libpEpEngine.a"
    2.76 +            BlueprintName = "pEpEngine"
    2.77 +            ReferencedContainer = "container:pEpEngine.xcodeproj">
    2.78 +         </BuildableReference>
    2.79 +      </MacroExpansion>
    2.80 +      <AdditionalOptions>
    2.81 +      </AdditionalOptions>
    2.82 +   </LaunchAction>
    2.83 +   <ProfileAction
    2.84 +      buildConfiguration = "Release"
    2.85 +      shouldUseLaunchSchemeArgsEnv = "YES"
    2.86 +      savedToolIdentifier = ""
    2.87 +      useCustomWorkingDirectory = "NO"
    2.88 +      debugDocumentVersioning = "YES">
    2.89 +      <MacroExpansion>
    2.90 +         <BuildableReference
    2.91 +            BuildableIdentifier = "primary"
    2.92 +            BlueprintIdentifier = "64796A3E1B455AA5004B1C24"
    2.93 +            BuildableName = "libpEpEngine.a"
    2.94 +            BlueprintName = "pEpEngine"
    2.95 +            ReferencedContainer = "container:pEpEngine.xcodeproj">
    2.96 +         </BuildableReference>
    2.97 +      </MacroExpansion>
    2.98 +   </ProfileAction>
    2.99 +   <AnalyzeAction
   2.100 +      buildConfiguration = "Debug">
   2.101 +   </AnalyzeAction>
   2.102 +   <ArchiveAction
   2.103 +      buildConfiguration = "Release"
   2.104 +      revealArchiveInOrganizer = "YES">
   2.105 +   </ArchiveAction>
   2.106 +</Scheme>
     3.1 --- a/src/baseprotocol.c	Tue Jun 04 15:02:35 2019 +0200
     3.2 +++ b/src/baseprotocol.c	Wed Jun 26 11:35:54 2019 +0200
     3.3 @@ -164,7 +164,7 @@
     3.4      char *_fpr = NULL;
     3.5      if (_sign) {
     3.6          status = verify_text(session, _payload, _payload_size, _sign, _sign_size, &keylist);
     3.7 -        if (status != PEP_VERIFIED || !keylist || !keylist->value) {
     3.8 +        if (!(status == PEP_VERIFIED || status == PEP_VERIFIED_AND_TRUSTED) || !keylist || !keylist->value) {
     3.9              // signature invalid or does not match; ignore sync message
    3.10              status = PEP_STATUS_OK;
    3.11              goto the_end;
    3.12 @@ -187,4 +187,3 @@
    3.13      free_stringlist(keylist);
    3.14      return status;
    3.15  }
    3.16 -
     4.1 --- a/src/keymanagement.c	Tue Jun 04 15:02:35 2019 +0200
     4.2 +++ b/src/keymanagement.c	Wed Jun 26 11:35:54 2019 +0200
     4.3 @@ -249,7 +249,7 @@
     4.4          case PEP_ct_key_revoked:
     4.5          case PEP_ct_key_b0rken:
     4.6              // delete key from being default key for all users/identities
     4.7 -            status = remove_fpr_as_default(session, fpr);
     4.8 +            status = remove_fpr_as_default(session, fpr); //BUFF: considers the key as "revoked" ...
     4.9              status = update_trust_for_fpr(session, 
    4.10                                            fpr, 
    4.11                                            ct);
    4.12 @@ -257,7 +257,7 @@
    4.13              free(ident->fpr);
    4.14              ident->fpr = NULL;
    4.15              ident->comm_type = ct;            
    4.16 -            status = PEP_KEY_UNSUITABLE;
    4.17 +            status = PEP_KEY_UNSUITABLE; //BUFF: ... and returns PEP_KEY_UNSUITABLE
    4.18          default:
    4.19              break;
    4.20      }            
     5.1 --- a/src/message_api.c	Tue Jun 04 15:02:35 2019 +0200
     5.2 +++ b/src/message_api.c	Wed Jun 26 11:35:54 2019 +0200
     5.3 @@ -3091,6 +3091,20 @@
     5.4      return status;    
     5.5  }
     5.6  
     5.7 +static PEP_STATUS reconcile_sent_and_recv_info(message* src, message* inner_message) {
     5.8 +    PEP_STATUS status = PEP_STATUS_OK;
     5.9 +    if (!src || !inner_message)
    5.10 +        return PEP_ILLEGAL_VALUE;
    5.11 +        
    5.12 +    if (!inner_message->sent)
    5.13 +        inner_message->sent = timestamp_dup(src->sent);
    5.14 +        
    5.15 +    // This will never be set otherwise, since it's a transport header on the outside    
    5.16 +    inner_message->recv = timestamp_dup(src->recv);
    5.17 +    
    5.18 +    return PEP_STATUS_OK;
    5.19 +}
    5.20 +
    5.21  static PEP_STATUS reconcile_src_and_inner_messages(message* src, 
    5.22                                               message* inner_message) {
    5.23  
    5.24 @@ -3108,6 +3122,9 @@
    5.25      if (status == PEP_STATUS_OK && inner_message->bcc)
    5.26          status = reconcile_identity_lists(src->bcc, inner_message->bcc);
    5.27  
    5.28 +    if (status == PEP_STATUS_OK)
    5.29 +        status = reconcile_sent_and_recv_info(src, inner_message);
    5.30 +        
    5.31      return status;
    5.32      // FIXME - are there any flags or anything else we need to be sure are carried?
    5.33  }
     6.1 --- a/src/pEpEngine.c	Tue Jun 04 15:02:35 2019 +0200
     6.2 +++ b/src/pEpEngine.c	Wed Jun 26 11:35:54 2019 +0200
     6.3 @@ -4267,9 +4267,33 @@
     6.4              identity->username))
     6.5          return PEP_ILLEGAL_VALUE;
     6.6  
     6.7 +    const char* saved_username = NULL;
     6.8 +    const char* at = NULL;
     6.9 +    size_t uname_len = strlen(identity->username);
    6.10 +    
    6.11 +    if (uname_len > 0)
    6.12 +        at = strstr(identity->username, "@"); 
    6.13 +    
    6.14 +    if (at) {
    6.15 +        saved_username = identity->username;
    6.16 +        identity->username = calloc(uname_len + 3, 1);
    6.17 +        if (!identity->username) {
    6.18 +            identity->username = saved_username;
    6.19 +            return PEP_OUT_OF_MEMORY;
    6.20 +        }
    6.21 +        identity->username[0] = '"';
    6.22 +        strlcpy((identity->username) + 1, saved_username, uname_len + 1);
    6.23 +        identity->username[uname_len + 1] = '"';        
    6.24 +    }
    6.25 +
    6.26      PEP_STATUS status =
    6.27          session->cryptotech[PEP_crypt_OpenPGP].generate_keypair(session,
    6.28                  identity);
    6.29 +                
    6.30 +    if (saved_username) {
    6.31 +        free(identity->username);
    6.32 +        identity->username = saved_username;
    6.33 +    }            
    6.34      if (status != PEP_STATUS_OK)
    6.35          return status;
    6.36  
     7.1 --- a/src/pgp_sequoia.c	Tue Jun 04 15:02:35 2019 +0200
     7.2 +++ b/src/pgp_sequoia.c	Wed Jun 26 11:35:54 2019 +0200
     7.3 @@ -1968,6 +1968,17 @@
     7.4          break;
     7.5      }
     7.6  
     7.7 +    int int_result = sqlite3_exec(
     7.8 +        session->key_db,
     7.9 +        "PRAGMA wal_checkpoint(FULL);\n"
    7.10 +        ,
    7.11 +        NULL,
    7.12 +        NULL,
    7.13 +        NULL
    7.14 +    );
    7.15 +    if (int_result != SQLITE_OK)
    7.16 +        status = PEP_UNKNOWN_DB_ERROR;
    7.17 +
    7.18   out:
    7.19      pgp_tpk_parser_free(parser);
    7.20  
     8.1 --- a/src/timestamp.c	Tue Jun 04 15:02:35 2019 +0200
     8.2 +++ b/src/timestamp.c	Wed Jun 26 11:35:54 2019 +0200
     8.3 @@ -30,7 +30,6 @@
     8.4  
     8.5  DYNAMIC_API timestamp * timestamp_dup(const timestamp *src)
     8.6  {
     8.7 -    assert(src);
     8.8      if (!src)
     8.9          return NULL;
    8.10  
    8.11 @@ -42,4 +41,3 @@
    8.12      memcpy(dst, src, sizeof(timestamp));
    8.13      return dst;
    8.14  }
    8.15 -
     9.1 --- a/sync/cond_act_sync.yml2	Tue Jun 04 15:02:35 2019 +0200
     9.2 +++ b/sync/cond_act_sync.yml2	Wed Jun 26 11:35:54 2019 +0200
     9.3 @@ -18,7 +18,7 @@
     9.4      |> *result = _result > 0;
     9.5  }
     9.6  
     9.7 -condition weAreFirst
     9.8 +condition weAreOfferer
     9.9  ||
    9.10      TID_t *t1 = &session->sync_state.keysync.challenge;
    9.11      TID_t *t2 = &session->sync_state.own.challenge;
    9.12 @@ -416,7 +416,7 @@
    9.13      free_identity_list(il);
    9.14  ||
    9.15  
    9.16 -action ownKeysAreGroupKeys
    9.17 +action ownKeysAreDefaultKeys
    9.18  ||
    9.19      PEP_STATUS status = PEP_STATUS_OK;
    9.20  
    9.21 @@ -430,7 +430,7 @@
    9.22      }
    9.23  ||
    9.24  
    9.25 -action receivedKeysAreGroupKeys
    9.26 +action receivedKeysAreDefaultKeys
    9.27  ||
    9.28      PEP_STATUS status = PEP_STATUS_OK;
    9.29      // set flag for all keys
    9.30 @@ -535,4 +535,3 @@
    9.31  ||
    9.32  
    9.33  action disable;
    9.34 -
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/sync/gen_doc.yml2	Wed Jun 26 11:35:54 2019 +0200
    10.3 @@ -0,0 +1,44 @@
    10.4 +include yslt.yml2
    10.5 +
    10.6 +tstylesheet {
    10.7 +    template "/protocol" {
    10.8 +        | protocol «@name»
    10.9 +        apply "fsm" sort "@name";
   10.10 +    }
   10.11 +    template "fsm" {
   10.12 +        | fsm «@name»
   10.13 +        apply "state" sort "@name";
   10.14 +        |
   10.15 +        for "set:distinct(*/event/@name)" {
   10.16 +            sort ".";
   10.17 +            |> event «.»
   10.18 +        }
   10.19 +        |
   10.20 +        for "set:distinct(descendant::action/@name)" {
   10.21 +            sort ".";
   10.22 +            |> action «.»
   10.23 +        }
   10.24 +        |
   10.25 +        for "set:distinct(descendant::condition/@name)" {
   10.26 +            sort ".";
   10.27 +            |> condition «.»
   10.28 +        }
   10.29 +        |
   10.30 +        apply "descendant::transition"
   10.31 +            sort "ancestor::state/@name",
   10.32 +            sort "@target",
   10.33 +            sort "ancestor::event/@name";
   10.34 +        |
   10.35 +        apply "message" sort "@name";
   10.36 +        |
   10.37 +        for "set:distinct(message/field/@name)" {
   10.38 +            sort ".";
   10.39 +            |> field «.»
   10.40 +        }
   10.41 +    }
   10.42 +    template "state" | state «@name»
   10.43 +    template "transition"
   10.44 +        | transition from «ancestor::state/@name» to «@target» on event «ancestor::event/@name»
   10.45 +    template "message" | message «@name»
   10.46 +}
   10.47 +
    11.1 --- a/sync/gen_dot.ysl2	Tue Jun 04 15:02:35 2019 +0200
    11.2 +++ b/sync/gen_dot.ysl2	Wed Jun 26 11:35:54 2019 +0200
    11.3 @@ -8,34 +8,24 @@
    11.4      ||
    11.5      digraph finite_state_machine {
    11.6          rankdir=LR;
    11.7 -        node [shape = doublecircle];
    11.8 -        `apply "state[@end='1']" mode=end`;
    11.9 -        node [shape = circle];
   11.10 +        node [shape=point];
   11.11 +        InitState;
   11.12 +        node [shape=doublecircle];
   11.13 +        End;
   11.14 +        node [shape=circle, style=filled, fillcolor=lightgrey];
   11.15  
   11.16 -        `` apply "state" mode=do
   11.17 +        `` apply "descendant::transition";
   11.18      }
   11.19      ||
   11.20  
   11.21 -    template "state", mode=end > «@name» 
   11.22 -    template "state", mode=do apply "event", 0 with "state", "@name";
   11.23 -
   11.24 -    template "event" {
   11.25 -        param "state";
   11.26 +    template "transition" {
   11.27 +        const "event", "ancestor::event/@name";
   11.28          choose {
   11.29 -            when "count(transition) > 0"
   11.30 -                apply "transition|condition/transition", 0
   11.31 -                    with "state", "$state", with "event", "@name";
   11.32 +            when "ancestor::fsm/message[@name=$event]"
   11.33 +                | «ancestor::state/@name» -> «@target» [ label="«ancestor::event/@name»", color=blue ];
   11.34              otherwise
   11.35 -                if "@name != 'Init'"
   11.36 -                    | «$state» -> «$state» [ label="«@name»" ];
   11.37 +                | «ancestor::state/@name» -> «@target» [ label="«ancestor::event/@name»", color=red ];
   11.38          }
   11.39      }
   11.40 -
   11.41 -    template "transition" {
   11.42 -        param "state";
   11.43 -        param "event";
   11.44 -
   11.45 -        | «$state» -> «@target» [ label ="«$event»" ];
   11.46 -    }
   11.47  }
   11.48  
    12.1 --- a/sync/sync.fsm	Tue Jun 04 15:02:35 2019 +0200
    12.2 +++ b/sync/sync.fsm	Wed Jun 26 11:35:54 2019 +0200
    12.3 @@ -41,14 +41,14 @@
    12.4                      // this is our own Beacon; ignore
    12.5                  }
    12.6                  else {
    12.7 -                    if weAreFirst {
    12.8 +                    if weAreOfferer {
    12.9                          do useOwnChallenge;
   12.10                          send Beacon;
   12.11                      }
   12.12 -                    else /* we are second */ {
   12.13 +                    else /* we are requester */ {
   12.14                          do openNegotiation;
   12.15                          do tellWeAreNotGrouped;
   12.16 -                        // second is sending NegotiationRequest
   12.17 +                        // requester is sending NegotiationRequest
   12.18                          send NegotiationRequest;
   12.19                          do useOwnChallenge;
   12.20                      }
   12.21 @@ -62,25 +62,25 @@
   12.22                      }
   12.23                      else {
   12.24                          do storeNegotiation;
   12.25 -                        // first is sending NegotiationOpen
   12.26 +                        // offerer is accepting by confirming NegotiationOpen
   12.27                          send NegotiationOpen;
   12.28                          if partnerIsGrouped
   12.29 -                            go HandshakingWithGroup;
   12.30 +                            go HandshakingToJoin;
   12.31                          else
   12.32 -                            go HandshakingNewFirst;
   12.33 +                            go HandshakingOfferer;
   12.34                      }
   12.35                  }
   12.36              }
   12.37  
   12.38              on NegotiationOpen if sameNegotiationAndPartner {
   12.39 -                // second is receiving NegotiationOpen
   12.40 +                // requester is receiving NegotiationOpen
   12.41                  do storeNegotiation;
   12.42 -                go HandshakingNewSecond;
   12.43 +                go HandshakingRequester;
   12.44              }
   12.45          }
   12.46  
   12.47          // handshaking without existing Device group
   12.48 -        state HandshakingNewFirst timeout=600 {
   12.49 +        state HandshakingOfferer timeout=600 {
   12.50              on Init
   12.51                  do showSoleHandshake;
   12.52  
   12.53 @@ -108,17 +108,17 @@
   12.54              // Accept means init Phase1Commit
   12.55              on Accept {
   12.56                  do trustThisKey;
   12.57 -                send CommitAcceptFirst;
   12.58 -                go HandshakingNewPhase1First;
   12.59 +                send CommitAcceptOfferer;
   12.60 +                go HandshakingPhase1Offerer;
   12.61              }
   12.62  
   12.63 -            // got a CommitAccept from second
   12.64 -            on CommitAcceptSecond if sameNegotiationAndPartner
   12.65 -                go HandshakingNewPhase2First;
   12.66 +            // got a CommitAccept from requester
   12.67 +            on CommitAcceptRequester if sameNegotiationAndPartner
   12.68 +                go HandshakingPhase2Offerer;
   12.69          }
   12.70  
   12.71          // handshaking without existing Device group
   12.72 -        state HandshakingNewSecond timeout=600 {
   12.73 +        state HandshakingRequester timeout=600 {
   12.74              on Init
   12.75                  do showSoleHandshake;
   12.76  
   12.77 @@ -146,16 +146,16 @@
   12.78              // Accept means init Phase1Commit
   12.79              on Accept {
   12.80                  do trustThisKey;
   12.81 -                send CommitAcceptSecond;
   12.82 -                go HandshakingNewPhase1Second;
   12.83 +                send CommitAcceptRequester;
   12.84 +                go HandshakingPhase1Requester;
   12.85              }
   12.86  
   12.87 -            // got a CommitAccept from first
   12.88 -            on CommitAcceptFirst if sameNegotiationAndPartner
   12.89 -                go HandshakingNewPhase2Second;
   12.90 +            // got a CommitAccept from offerer
   12.91 +            on CommitAcceptOfferer if sameNegotiationAndPartner
   12.92 +                go HandshakingPhase2Requester;
   12.93          }
   12.94  
   12.95 -        state HandshakingNewPhase1First {
   12.96 +        state HandshakingPhase1Offerer {
   12.97              on Rollback if sameNegotiationAndPartner {
   12.98                  do untrustThisKey;
   12.99                  go Sole;
  12.100 @@ -167,12 +167,12 @@
  12.101                  go End;
  12.102              }
  12.103  
  12.104 -            on CommitAcceptSecond if sameNegotiationAndPartner {
  12.105 -                go NewGroupFirst;
  12.106 +            on CommitAcceptRequester if sameNegotiationAndPartner {
  12.107 +                go FormingGroupOfferer;
  12.108              }
  12.109          }
  12.110  
  12.111 -        state HandshakingNewPhase1Second {
  12.112 +        state HandshakingPhase1Requester {
  12.113              on Rollback if sameNegotiationAndPartner {
  12.114                  do untrustThisKey;
  12.115                  go Sole;
  12.116 @@ -184,12 +184,12 @@
  12.117                  go End;
  12.118              }
  12.119  
  12.120 -            on CommitAcceptFirst if sameNegotiationAndPartner {
  12.121 -                go NewGroupSecond;
  12.122 +            on CommitAcceptOfferer if sameNegotiationAndPartner {
  12.123 +                go FormingGroupRequester;
  12.124              }
  12.125          }
  12.126  
  12.127 -        state HandshakingNewPhase2First {
  12.128 +        state HandshakingPhase2Offerer {
  12.129              on Cancel {
  12.130                  send Rollback;
  12.131                  go Sole;
  12.132 @@ -202,13 +202,13 @@
  12.133              }
  12.134  
  12.135              on Accept {
  12.136 -                send CommitAcceptFirst;
  12.137 +                send CommitAcceptOfferer;
  12.138                  do trustThisKey;
  12.139 -                go NewGroupFirst;
  12.140 +                go FormingGroupOfferer;
  12.141              }
  12.142          }
  12.143  
  12.144 -        state HandshakingNewPhase2Second {
  12.145 +        state HandshakingPhase2Requester {
  12.146              on Cancel {
  12.147                  send Rollback;
  12.148                  go Sole;
  12.149 @@ -221,36 +221,35 @@
  12.150              }
  12.151  
  12.152              on Accept {
  12.153 -                send CommitAcceptSecond;
  12.154 +                send CommitAcceptRequester;
  12.155                  do trustThisKey;
  12.156 -                go NewGroupSecond;
  12.157 +                go FormingGroupRequester;
  12.158              }
  12.159          }
  12.160  
  12.161 -        state NewGroupFirst {
  12.162 +        state FormingGroupOfferer {
  12.163              on Init {
  12.164                  do prepareOwnKeys;
  12.165 -                send OwnKeysFirst; // we're not grouped yet, this is our own keys
  12.166 +                send OwnKeysOfferer; // we're not grouped yet, this is our own keys
  12.167              }
  12.168  
  12.169 -            on OwnKeysSecond {
  12.170 +            on OwnKeysRequester {
  12.171                  do saveGroupKeys;
  12.172 -                do receivedKeysAreGroupKeys;
  12.173 +                do receivedKeysAreDefaultKeys;
  12.174                  do showGroupCreated;
  12.175                  go Grouped;
  12.176              }
  12.177          }
  12.178  
  12.179 -        state NewGroupSecond {
  12.180 +        state FormingGroupRequester {
  12.181              on Init {
  12.182                  do prepareOwnKeys;
  12.183 -                send OwnKeysSecond; // we're not grouped yet, this is our own keys
  12.184 +                send OwnKeysRequester; // we're not grouped yet, this is our own keys
  12.185              }
  12.186  
  12.187 -            on OwnKeysFirst {
  12.188 +            on OwnKeysOfferer {
  12.189                  do saveGroupKeys;
  12.190 -
  12.191 -                do ownKeysAreGroupKeys;
  12.192 +                do ownKeysAreDefaultKeys;
  12.193                  do showGroupCreated;
  12.194                  go Grouped;
  12.195              }
  12.196 @@ -282,13 +281,12 @@
  12.197                  go HandshakingGrouped;
  12.198              }
  12.199  
  12.200 -            on GroupTrustThisKey {
  12.201 +            on GroupTrustThisKey
  12.202                  do trustThisKey;
  12.203 -            }
  12.204          }
  12.205  
  12.206          // sole device handshaking with group
  12.207 -        state HandshakingWithGroup {
  12.208 +        state HandshakingToJoin {
  12.209              on Init
  12.210                  do showJoinGroupHandshake;
  12.211  
  12.212 @@ -308,6 +306,9 @@
  12.213                  go End;
  12.214              }
  12.215  
  12.216 +            on CommitAcceptForGroup if sameNegotiationAndPartner
  12.217 +                go HandshakingToJoinPhase2;
  12.218 +
  12.219              on CommitReject if sameNegotiationAndPartner {
  12.220                  do disable;
  12.221                  go End;
  12.222 @@ -317,11 +318,11 @@
  12.223              on Accept {
  12.224                  do trustThisKey;
  12.225                  send CommitAccept;
  12.226 -                go HandshakingJoinPhase1;
  12.227 +                go HandshakingToJoinPhase1;
  12.228              }
  12.229          }
  12.230  
  12.231 -        state HandshakingJoinPhase1 {
  12.232 +        state HandshakingToJoinPhase1 {
  12.233              on Rollback if sameNegotiationAndPartner
  12.234                  go Sole;
  12.235              
  12.236 @@ -330,12 +331,11 @@
  12.237                  go End;
  12.238              }
  12.239  
  12.240 -            on CommitAcceptForGroup if sameNegotiationAndPartner {
  12.241 -                go JoinGroup;
  12.242 -            }
  12.243 +            on CommitAcceptForGroup if sameNegotiationAndPartner
  12.244 +                go JoiningGroup;
  12.245          }
  12.246  
  12.247 -        state HandshakingJoinPhase2 {
  12.248 +        state HandshakingToJoinPhase2 {
  12.249              on Cancel {
  12.250                  send Rollback;
  12.251                  go Sole;
  12.252 @@ -349,19 +349,16 @@
  12.253  
  12.254              on Accept {
  12.255                  do trustThisKey;
  12.256 -                go JoinGroup;
  12.257 +                go JoiningGroup;
  12.258              }
  12.259          }
  12.260  
  12.261 -        state JoinGroup {
  12.262 -            on Init {
  12.263 -                do prepareOwnKeys;
  12.264 -                send OwnKeys;
  12.265 -            }
  12.266 -
  12.267 +        state JoiningGroup {
  12.268              on GroupKeys {
  12.269                  do saveGroupKeys;
  12.270 -                do receivedKeysAreGroupKeys;
  12.271 +                do receivedKeysAreDefaultKeys;
  12.272 +                do prepareOwnKeys;
  12.273 +                send GroupKeys;
  12.274                  do showDeviceAdded;
  12.275                  go Grouped;
  12.276              }
  12.277 @@ -405,14 +402,6 @@
  12.278                  do trustThisKey;
  12.279              }
  12.280  
  12.281 -            on CommitAcceptForGroup {
  12.282 -                do showDeviceAdded;
  12.283 -                if sameNegotiationAndPartner {
  12.284 -                    do hideHandshakeDialog;
  12.285 -                    go Grouped;
  12.286 -                }
  12.287 -            }
  12.288 -
  12.289              on GroupKeys
  12.290                  do saveGroupKeys;
  12.291          }
  12.292 @@ -496,11 +485,11 @@
  12.293              field TID negotiation;
  12.294          }
  12.295  
  12.296 -        message CommitAcceptFirst 7, security=untrusted {
  12.297 +        message CommitAcceptOfferer 7, security=untrusted {
  12.298              field TID negotiation;
  12.299          }
  12.300  
  12.301 -        message CommitAcceptSecond 8, security=untrusted {
  12.302 +        message CommitAcceptRequester 8, security=untrusted {
  12.303              field TID negotiation;
  12.304          }
  12.305  
  12.306 @@ -522,15 +511,11 @@
  12.307              field IdentityList ownIdentities;
  12.308          }
  12.309  
  12.310 -        message OwnKeys 13, security=attach_own_keys {
  12.311 +        message OwnKeysOfferer 13, security=attach_own_keys {
  12.312              field IdentityList ownIdentities;
  12.313          }
  12.314  
  12.315 -        message OwnKeysFirst 14, security=attach_own_keys {
  12.316 -            field IdentityList ownIdentities;
  12.317 -        }
  12.318 -
  12.319 -        message OwnKeysSecond 15, security=attach_own_keys {
  12.320 +        message OwnKeysRequester 14, security=attach_own_keys {
  12.321              field IdentityList ownIdentities;
  12.322          }
  12.323      }
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/test/include/IOS1664Tests.h	Wed Jun 26 11:35:54 2019 +0200
    13.3 @@ -0,0 +1,19 @@
    13.4 +// This file is under GNU General Public License 3.0
    13.5 +// see LICENSE.txt
    13.6 +
    13.7 +#ifndef I_O_S1664_H
    13.8 +#define I_O_S1664_H
    13.9 +
   13.10 +#include <string>
   13.11 +#include "EngineTestIndividualSuite.h"
   13.12 +
   13.13 +using namespace std;
   13.14 +
   13.15 +class IOS1664Tests : public EngineTestIndividualSuite {
   13.16 +    public:
   13.17 +        IOS1664Tests(string test_suite, string test_home_dir);
   13.18 +    private:
   13.19 +        void check_i_o_s1664();
   13.20 +};
   13.21 +
   13.22 +#endif
    14.1 --- a/test/src/SuiteMaker.cc	Tue Jun 04 15:02:35 2019 +0200
    14.2 +++ b/test/src/SuiteMaker.cc	Wed Jun 26 11:35:54 2019 +0200
    14.3 @@ -19,12 +19,12 @@
    14.4  #include "VerifyTests.h"
    14.5  #include "UserIdCollisionTests.h"
    14.6  #include "Engine463Tests.h"
    14.7 +#include "IOS1664Tests.h"
    14.8  #include "BloblistTests.h"
    14.9  #include "NewUpdateIdAndMyselfTests.h"
   14.10  #include "NoOwnIdentWritesOnDecryptTests.h"
   14.11  #include "LiteralFilenameTests.h"
   14.12  #include "I18nTests.h"
   14.13 -#include "Message2_1Tests.h"
   14.14  #include "IdentityListTests.h"
   14.15  #include "PgpBinaryTests.h"
   14.16  #include "SubkeyRatingEvalTests.h"
   14.17 @@ -85,12 +85,12 @@
   14.18      "VerifyTests",
   14.19      "UserIdCollisionTests",
   14.20      "Engine463Tests",
   14.21 +    "IOS1664Tests",
   14.22      "BloblistTests",
   14.23      "NewUpdateIdAndMyselfTests",
   14.24      "NoOwnIdentWritesOnDecryptTests",
   14.25      "LiteralFilenameTests",
   14.26      "I18nTests",
   14.27 -    "Message2_1Tests",
   14.28      "IdentityListTests",
   14.29      "PgpBinaryTests",
   14.30      "SubkeyRatingEvalTests",
   14.31 @@ -161,6 +161,8 @@
   14.32          *test_suite = new UserIdCollisionTests(test_class_name, test_home);
   14.33      else if (strcmp(test_class_name, "Engine463Tests") == 0)
   14.34          *test_suite = new Engine463Tests(test_class_name, test_home);
   14.35 +    else if (strcmp(test_class_name, "IOS1664Tests") == 0)
   14.36 +        *test_suite = new IOS1664Tests(test_class_name, test_home);
   14.37      else if (strcmp(test_class_name, "BloblistTests") == 0)
   14.38          *test_suite = new BloblistTests(test_class_name, test_home);
   14.39      else if (strcmp(test_class_name, "NewUpdateIdAndMyselfTests") == 0)
   14.40 @@ -171,8 +173,6 @@
   14.41          *test_suite = new LiteralFilenameTests(test_class_name, test_home);
   14.42      else if (strcmp(test_class_name, "I18nTests") == 0)
   14.43          *test_suite = new I18nTests(test_class_name, test_home);
   14.44 -    else if (strcmp(test_class_name, "Message2_1Tests") == 0)
   14.45 -        *test_suite = new Message2_1Tests(test_class_name, test_home);
   14.46      else if (strcmp(test_class_name, "IdentityListTests") == 0)
   14.47          *test_suite = new IdentityListTests(test_class_name, test_home);
   14.48      else if (strcmp(test_class_name, "PgpBinaryTests") == 0)
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/test/src/engine_tests/IOS1664Tests.cc	Wed Jun 26 11:35:54 2019 +0200
    15.3 @@ -0,0 +1,61 @@
    15.4 +// This file is under GNU General Public License 3.0
    15.5 +// see LICENSE.txt
    15.6 +
    15.7 +#include <stdlib.h>
    15.8 +#include <cstring>
    15.9 +#include <string>
   15.10 +
   15.11 +#include <cpptest.h>
   15.12 +#include "test_util.h"
   15.13 +
   15.14 +#include "pEpEngine.h"
   15.15 +
   15.16 +#include "EngineTestIndividualSuite.h"
   15.17 +#include "IOS1664Tests.h"
   15.18 +#include "mime.h"
   15.19 +
   15.20 +using namespace std;
   15.21 +
   15.22 +IOS1664Tests::IOS1664Tests(string suitename, string test_home_dir) :
   15.23 +    EngineTestIndividualSuite::EngineTestIndividualSuite(suitename, test_home_dir) {
   15.24 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("IOS1664Tests::check_i_o_s1664"),
   15.25 +                                                                      static_cast<Func>(&IOS1664Tests::check_i_o_s1664)));
   15.26 +}
   15.27 +
   15.28 +void IOS1664Tests::check_i_o_s1664() {
   15.29 +    string email = slurp("test_mails/0.47.eml");
   15.30 +    TEST_ASSERT(!email.empty());
   15.31 +    
   15.32 +    message* message_mail = NULL;
   15.33 +    
   15.34 +    PEP_STATUS status = mime_decode_message(email.c_str(), email.size(), &message_mail);
   15.35 +    TEST_ASSERT(status == PEP_STATUS_OK && message_mail);
   15.36 +    
   15.37 +    // create own identity here, because we want to reply, before we start.
   15.38 +    pEp_identity* me = new_identity("android01@peptest.ch", NULL, PEP_OWN_USERID, NULL);
   15.39 +    status = myself(session, me);
   15.40 +    
   15.41 +    TEST_ASSERT(status == PEP_STATUS_OK && me->fpr != NULL && me->fpr[0] != '\0');
   15.42 +    
   15.43 +    // Ok, now read the message
   15.44 +    message* read_message = NULL;
   15.45 +    stringlist_t* keylist;
   15.46 +    PEP_rating rating;
   15.47 +    PEP_decrypt_flags_t flags = 0;
   15.48 +    
   15.49 +    status = decrypt_message(session, message_mail, &read_message, &keylist, &rating, &flags);
   15.50 +    TEST_ASSERT(status == PEP_UNENCRYPTED);
   15.51 +    
   15.52 +    pEp_identity* you = new_identity("superxat@gmail.com", NULL, NULL, NULL);
   15.53 +    
   15.54 +    message* out_msg = new_message(PEP_dir_outgoing);
   15.55 +    out_msg->from = me;
   15.56 +    out_msg->to = new_identity_list(you);
   15.57 +    out_msg->shortmsg = strdup("Hussidente 2020!");
   15.58 +    out_msg->longmsg = strdup("A Huss in every office!");
   15.59 +    
   15.60 +    status = outgoing_message_rating(session, out_msg, &rating);
   15.61 +    TEST_ASSERT(rating == PEP_rating_unencrypted);
   15.62 +    
   15.63 +    TEST_ASSERT(true);
   15.64 +}
    16.1 --- a/test/src/engine_tests/SyncTests.cc.b0rken	Tue Jun 04 15:02:35 2019 +0200
    16.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3 @@ -1,179 +0,0 @@
    16.4 -// This file is under GNU General Public License 3.0
    16.5 -// see LICENSE.txt
    16.6 -
    16.7 -#include <stdlib.h>
    16.8 -#include <string>
    16.9 -
   16.10 -#include "pEpEngine.h"
   16.11 -
   16.12 -#include "pEp_internal.h"
   16.13 -#include "KeySync_fsm.h"
   16.14 -#include "sync_codec.h"
   16.15 -
   16.16 -#include "EngineTestSessionSuite.h"
   16.17 -#include "SyncTests.h"
   16.18 -
   16.19 -using namespace std;
   16.20 -
   16.21 -void Sync_Adapter::processing()
   16.22 -{
   16.23 -    cout << "waiting for processing\n";
   16.24 -    while (!q.empty()) {
   16.25 -        nanosleep((const struct timespec[]){{0, 100000000L}}, NULL);
   16.26 -    }
   16.27 -}
   16.28 -
   16.29 -PEP_STATUS Sync_Adapter::notifyHandshake(
   16.30 -        pEp_identity *me,
   16.31 -        pEp_identity *partner,
   16.32 -        sync_handshake_signal signal
   16.33 -    )
   16.34 -{
   16.35 -    return PEP_STATUS_OK;
   16.36 -}
   16.37 -
   16.38 -int Sync_Adapter::inject_sync_event(SYNC_EVENT ev, void *management)
   16.39 -{
   16.40 -    Sync_event_t *_ev = ev;
   16.41 -    switch (_ev->fsm) {
   16.42 -        case Sync_PR_keysync:
   16.43 -            cout << "injecting event " << KeySync_event_name(_ev->event) << "\n";
   16.44 -            break;
   16.45 -        default:
   16.46 -            cout << "unknown state machine: " << _ev->fsm << "\n";
   16.47 -            assert(0);
   16.48 -    }
   16.49 -    auto adapter = static_cast< Sync_Adapter *>(management);
   16.50 -    adapter->q.push_front(ev);
   16.51 -    return 0;
   16.52 -}
   16.53 -
   16.54 -Sync_event_t *Sync_Adapter::retrieve_next_sync_event(void *management, time_t threshold)
   16.55 -{
   16.56 -    auto adapter = static_cast< Sync_Adapter *>(management);
   16.57 -    time_t started = time(nullptr);
   16.58 -    bool timeout = false;
   16.59 -
   16.60 -    while (adapter->q.empty()) {
   16.61 -        int i = 0;
   16.62 -        ++i;
   16.63 -        if (i > 10) {
   16.64 -            if (time(nullptr) > started + threshold) {
   16.65 -                timeout = true;
   16.66 -                break;
   16.67 -            }
   16.68 -            i = 0;
   16.69 -        }
   16.70 -        nanosleep((const struct timespec[]){{0, 100000000L}}, NULL);
   16.71 -    }
   16.72 -
   16.73 -    if (timeout)
   16.74 -        return SYNC_TIMEOUT_EVENT;
   16.75 -
   16.76 -    Sync_event_t *ev = adapter->q.pop_front();
   16.77 -    if (ev) {
   16.78 -        switch (ev->fsm) {
   16.79 -            case Sync_PR_keysync:
   16.80 -                cout << "sync thread: retrieving event " << KeySync_event_name(ev->event) << "\n";
   16.81 -                break;
   16.82 -            default:
   16.83 -                cout << "sync thread: unknown state machine: " << ev->fsm << "\n";
   16.84 -                assert(0);
   16.85 -        }
   16.86 -    }
   16.87 -    else {
   16.88 -        cout << "sync thread: retrieving shutdown\n";
   16.89 -    }
   16.90 -
   16.91 -    return ev;
   16.92 -}
   16.93 -
   16.94 -PEP_STATUS Sync_Adapter::messageToSend(struct _message *msg)
   16.95 -{
   16.96 -    assert(msg && msg->attachments);
   16.97 -    
   16.98 -    cout << "sending message:\n";
   16.99 -
  16.100 -    for (bloblist_t *b = msg->attachments; b && b->value; b = b->next) {
  16.101 -        if (b->mime_type && strcasecmp(b->mime_type, "application/pEp.sync") == 0) {
  16.102 -            assert(msg->from && msg->from->address && msg->from->username);
  16.103 -            cout << "<!-- " << msg->from->username << " <" << msg->from->address << "> -->\n";
  16.104 -            char *text = NULL;
  16.105 -            PEP_STATUS status = PER_to_XER_Sync_msg(msg->attachments->value, msg->attachments->size, &text);
  16.106 -            assert(status == PEP_STATUS_OK);
  16.107 -            cout << text << "\n";
  16.108 -            free(text);
  16.109 -        }
  16.110 -    }
  16.111 -
  16.112 -    free_message(msg);
  16.113 -    return PEP_STATUS_OK;
  16.114 -}
  16.115 -
  16.116 -void Sync_Adapter::sync_thread(PEP_SESSION session, Sync_Adapter *adapter)
  16.117 -{
  16.118 -    cout << "sync_thread: startup\n";
  16.119 -    do_sync_protocol(session, adapter);
  16.120 -    cout << "sync_thread: shutdown\n";
  16.121 -}
  16.122 -
  16.123 -SyncTests::SyncTests(string suitename, string test_home_dir) :
  16.124 -    EngineTestSessionSuite::EngineTestSessionSuite(suitename, test_home_dir) {
  16.125 -    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SyncTests::check_sync"),
  16.126 -                                                                      static_cast<Func>(&SyncTests::check_sync)));
  16.127 -}
  16.128 -
  16.129 -void SyncTests::setup()
  16.130 -{
  16.131 -    EngineTestSessionSuite::setup();
  16.132 -
  16.133 -    pEp_identity *self = new_identity("alice@synctests.pEp", nullptr, "23", "Alice Miller");
  16.134 -    assert(self);
  16.135 -    cout << "setting own identity for " << self->address << "\n";
  16.136 -    PEP_STATUS status = myself(session, self);
  16.137 -    assert(self->me);
  16.138 -    assert(self->fpr);
  16.139 -    cout << "fpr: " << self->fpr << "\n";
  16.140 -    free_identity(self);
  16.141 -
  16.142 -    status = init(&sync, Sync_Adapter::messageToSend, Sync_Adapter::inject_sync_event);
  16.143 -    TEST_ASSERT(status == PEP_STATUS_OK);
  16.144 -
  16.145 -    cout << "initialize sync and start first state machine\n";
  16.146 -    status = register_sync_callbacks(
  16.147 -            sync,
  16.148 -            (void *) &adapter.q,
  16.149 -            Sync_Adapter::notifyHandshake,
  16.150 -            Sync_Adapter::retrieve_next_sync_event
  16.151 -        );
  16.152 -    TEST_ASSERT(status == PEP_STATUS_OK);
  16.153 -    TEST_ASSERT(sync->sync_state.keysync.state == Sole);
  16.154 -
  16.155 -    cout << "creating thread for sync\n";
  16.156 -    sync_thread = new thread(Sync_Adapter::sync_thread, sync, &adapter);
  16.157 -}
  16.158 -
  16.159 -void SyncTests::tear_down()
  16.160 -{
  16.161 -    adapter.processing();
  16.162 -
  16.163 -    cout << "sending shutdown to sync thread\n";
  16.164 -    adapter.q.push_front(nullptr);
  16.165 -    sync_thread->join();
  16.166 -
  16.167 -    unregister_sync_callbacks(sync);
  16.168 -    release(sync);
  16.169 -
  16.170 -    EngineTestSessionSuite::tear_down();
  16.171 -}
  16.172 -
  16.173 -void SyncTests::check_sync()
  16.174 -{
  16.175 -    cout << "check_sync(): trigger KeyGen event\n";
  16.176 -    signal_Sync_event(sync, Sync_PR_keysync, KeyGen);
  16.177 -    adapter.processing();
  16.178 -
  16.179 -    cout << "check_sync(): cry for unknown key\n";
  16.180 -    signal_Sync_event(sync, Sync_PR_keysync, CannotDecrypt);
  16.181 -}
  16.182 -
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/test/test_mails/0.47.eml	Wed Jun 26 11:35:54 2019 +0200
    17.3 @@ -0,0 +1,118 @@
    17.4 +Return-Path: <superxat@gmail.com>
    17.5 +X-Original-To: android01@peptest.ch
    17.6 +Delivered-To: android01@peptest.ch
    17.7 +Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48])
    17.8 +	by peptest.ch (Postfix) with ESMTPS id B28651A1A37
    17.9 +	for <android01@peptest.ch>; Wed, 19 Jun 2019 13:30:48 +0200 (CEST)
   17.10 +Authentication-Results: plesk.peptest.ch;
   17.11 +        spf=pass (sender IP is 209.85.128.48) smtp.mailfrom=superxat@gmail.com smtp.helo=mail-wm1-f48.google.com
   17.12 +Received-SPF: pass (plesk.peptest.ch: domain of gmail.com designates 209.85.128.48 as permitted sender) client-ip=209.85.128.48; envelope-from=superxat@gmail.com; helo=mail-wm1-f48.google.com;
   17.13 +Received: by mail-wm1-f48.google.com with SMTP id c6so1452126wml.0
   17.14 +        for <android01@peptest.ch>; Wed, 19 Jun 2019 04:30:48 -0700 (PDT)
   17.15 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
   17.16 +        d=gmail.com; s=20161025;
   17.17 +        h=date:subject:message-id:mime-version:from:to
   17.18 +         :content-transfer-encoding:content-disposition;
   17.19 +        bh=NUw9sOoAh+T9dS39iJIrhWdmODeTKEUilqsSegM8sFY=;
   17.20 +        b=P7PQKOsF5/fo55wQh0OSf0TmwvGkefdBetMjGbNU+3YMI9ivYIcA1d/BS0acEc680t
   17.21 +         8hXsylVmD0+W51dkKDRoD0eMOI+lRy0km3i3ndTghVWQkwC4qmlcX3m9+l7JqoBK1WfS
   17.22 +         LLQLVmYIoqOVOKeDt1Gin93KKU7UJrnxTWmQBtwStvTtBf55W9oSfwimQw4vMQ9dC18b
   17.23 +         ZIxdIF718uUgoeNoBDCwIZSEhrx2BrtMIwQLMCo3N3tj90teB+J2RzyR1/WK5baZSYTx
   17.24 +         jFEP820+8ijVkbfBeGe/NXO8lhjkcBJpMRt8u6hEwaYfqCHti5nNxkBPz5DTMaSpwr/i
   17.25 +         frvw==
   17.26 +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
   17.27 +        d=1e100.net; s=20161025;
   17.28 +        h=x-gm-message-state:date:subject:message-id:mime-version:from:to
   17.29 +         :content-transfer-encoding:content-disposition;
   17.30 +        bh=NUw9sOoAh+T9dS39iJIrhWdmODeTKEUilqsSegM8sFY=;
   17.31 +        b=uh9pKjfFTmrFiQ0FGn451jB7OLbRwzdgsMUkI005vc/mFKzVl2ON/+DhBdgHn32fat
   17.32 +         NFLXoDWJLxOdmHa4AHZFuNzlq2FkuMcHol71/TrwfpcLua7lv91xK1QyNAOiZTr+svHF
   17.33 +         OvHJfnwQDgDEKvujrDSNtiouClF8PDn3xL14oleqWHJVof/xu1g85udfrz9oCRB75LEx
   17.34 +         MQMdg/2dZG2VOyU5oL0GxFWkJklwbVRetmeedXW03LT6nHMxgiTvu8w763Xrc6qiQg8i
   17.35 +         E6YrGGYcGkQ2Yz+ktTWPfNRbAYqXWIcl4hTWfgz/EfA++YADsLfylsQFbLEjrzqPl3ta
   17.36 +         n42Q==
   17.37 +X-Gm-Message-State: APjAAAVz898EiKLpVhBB5cId5eBhi5M165QEihBzgqQYtn4mwKLXTvmm
   17.38 +	Zcj9EtC70y+1hUOijZcR0t20kv+pORU=
   17.39 +X-Google-Smtp-Source: APXvYqzwqwDR8fIHgK/akmZKDj40939fHnZCMvbJkqGJO8FJBA1CNtsOeeD/o9+oPXxSOes9wcFivw==
   17.40 +X-Received: by 2002:a1c:7614:: with SMTP id r20mr8454522wmc.142.1560943846238;
   17.41 +        Wed, 19 Jun 2019 04:30:46 -0700 (PDT)
   17.42 +Received: from pretty.Easy.privacy (58.red-79-153-28.dynamicip.rima-tde.net. [79.153.28.58])
   17.43 +        by smtp.gmail.com with ESMTPSA id l1sm27960688wrf.46.2019.06.19.04.30.45
   17.44 +        for <android01@peptest.ch>
   17.45 +        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
   17.46 +        Wed, 19 Jun 2019 04:30:45 -0700 (PDT)
   17.47 +Date: Wed, 19 Jun 2019 13:30:45 +0200
   17.48 +Subject: Tralal
   17.49 +Message-ID: <D5AB23C6.36B2.4D51.9FED.2B89DA8E24F0@pretty.Easy.privacy>
   17.50 +MIME-Version: 1.0
   17.51 +From: "Superxat" <superxat@gmail.com>
   17.52 +To: "android01@peptest.ch" <android01@peptest.ch>
   17.53 +X-pEp-Version: 2.0
   17.54 +Content-Transfer-Encoding: 8bit
   17.55 +Content-Type: multipart/related; charset="UTF-8";
   17.56 +	boundary="=_0c0c4f5794a2b6faebb4792f1d649487"
   17.57 +Content-Disposition: inline
   17.58 +
   17.59 +--=_0c0c4f5794a2b6faebb4792f1d649487
   17.60 +Content-Type: multipart/alternative; charset="UTF-8";
   17.61 +	boundary="=_14547b0f3d5cfa991974970b718011b9"
   17.62 +Content-Disposition: inline
   17.63 +
   17.64 +--=_14547b0f3d5cfa991974970b718011b9
   17.65 +Content-Transfer-Encoding: 8bit
   17.66 +Content-Type: text/plain; charset="UTF-8"
   17.67 +Content-Disposition: inline
   17.68 +
   17.69 +Jzbf 
   17.70 +
   17.71 +
   17.72 +sent with p≡p
   17.73 +
   17.74 +--=_14547b0f3d5cfa991974970b718011b9
   17.75 +Content-Transfer-Encoding: 8bit
   17.76 +Content-Type: text/html; charset="UTF-8"
   17.77 +Content-Disposition: inline
   17.78 +
   17.79 +<p>Jzbf</p>
   17.80 +<p><a href="https://pep.software" style="color:#1AAA50; text-decoration: none;">sent with p≡p</a></p>
   17.81 +--=_14547b0f3d5cfa991974970b718011b9--
   17.82 +
   17.83 +--=_0c0c4f5794a2b6faebb4792f1d649487
   17.84 +Content-Transfer-Encoding: base64
   17.85 +Content-Type: application/pgp-keys; charset="UTF-8"; name="pEpkey.asc"
   17.86 +Content-Disposition: attachment; filename="pEpkey.asc"
   17.87 +
   17.88 +LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQpWZXJzaW9uOiBOZXRQR1Ag
   17.89 +Zm9yIHBFcCAzLjk5Ljk5L1tiZXRhMF0NCg0KeHNGTkJGMEtITWtCRUFDMHM2MUI2dXlGREI0
   17.90 +WjNoQ3h1SDJkSGltdzltT0dxUlNTR2g5dW10czh5NGs4VUJmbFlkOE43T3lIM21wQw0KMVJm
   17.91 +L2J3d1FESjBkMUFuUUZrdmNHOWdkQXEyTXREZHZzbGlyV1krQm1oZEtDdVVCSWxuWXhrbGRt
   17.92 +cUlGSVpQc1ZJam5JNG1WK3cxMg0KakFmYk9MSEZNQnhiNXdFSUZVcVpzZ25wQklsTVlNN2Nt
   17.93 +L05HdVlkc2pzWGl0MC93U3FxOXkySTBTL25MRWFYaXZIUmF4WmRyaFNzOA0Kb1IrTU5TVW5O
   17.94 +MGZsOElETnV1QUp6U0RNbzljZGwwQk1uN2ZTdWYyWXhMUlA0WWZGTHhGWGhPTStlQjNETnQ5
   17.95 +R2ZTZ0dVTFBQRStLcw0KVktuWkxCLzBlUEtSNWZhWDV4Rjllb2tEZlR0T3l1ZnJPRFdJK3FU
   17.96 +eElubUNSQzg4VFRGMGhiMTFTMGFzd0FnZW44c3QyNTBBQnFyeg0KQWVWc1Vtc2prMmR0REhM
   17.97 +TzJBaGxBQ3FVRmdOLzV5ckJxWXpvM0lLZVpmNTUxSFdVVzVQVGRmZmdZM1FQNUc5SkVzRVBP
   17.98 +a3R0RTBpYw0KdXdJbHRQS2lQZkZzNmVkMjcyNG9pNS90NVBlbm8vNTdxK2hrTStsS3RodmYy
   17.99 +ZEJleTkzL0FLcGtpN0F4aTJCbjRhRGVEb3JNQnNBZw0KZG9iSHFKVUxBdmVJaDR4VzFTbnJX
  17.100 +dlVMdDZHSUZrbjBISUJqZWhmQkFBejZGVFkwRnpiaFJacHhtaDhBNm5JU2ZZNFdZUTdCbFpl
  17.101 +cA0Kb1V0dFU5MHVEeEZDcWxYdlV1NnViQzhSQ1poNFNJMWd3QktobVZ3MTR4UngrZkNWTFc2
  17.102 +SFRvR0x4UDY5dEYwRGxucUd2YkhaOU1LdA0KRGFTSldNZEQvRUtZR1FBUkFRQUJ6UjFUZFhC
  17.103 +bGNuaGhkQ0E4YzNWd1pYSjRZWFJBWjIxaGFXd3VZMjl0UHNMQmZRUVRBUUlBTVFVQw0KWFFv
  17.104 +Y3lRVUpBZUV6Z0FrUXBSbWp3WmdBY1kwQ0dRRUNHd1lHQ3drSEF3SUJCaFVJQWdrS0N3TVdB
  17.105 +Z01DSGdFQUFHSU1ELzlrSFVZSQ0KN3FTWGo2Q04zeWZBZFlxT05iOGFOWXRjczNhZUd0bjRp
  17.106 +M3htUGw2cTFoR05KV05kTzlmYzhmNFUzSjRleDFBYlY3NFkzckpQT2xEWA0KRzBLZFBRaEVI
  17.107 +Tzhpc2lidkRVcDJoaEhXM20zSGF4dzg0SWY4UDlqUlJBa2JKbk1pVEFwYk9PSElOTCtqY1hz
  17.108 +anU1WHNKeCt5K1NCdQ0KQ3l2TXV4S0VIbnUrZldrWE05RGlKMTJiRjJxNTEwTExjUHR5SVov
  17.109 +azI3S3djemgrdWNQWHhXWHZQbk84MHN3SGpVWVM4L3NydjYrMA0Kcm51dXZvaXlMWlN1bzh1
  17.110 +QUVOZGkrQWdvU0gwMXNZcmxRRHQvSko3OXFxZ1NtcTdYRnpzeElGWFVMTG5ITHVxZmxiTEZm
  17.111 +eUJTMm1wcA0KbUZZa0ZlVWZ5NG9lQmY5NWkxTkVNRWZYNGk3WUhEZVNQT0Jqd1FVRi8vVEpk
  17.112 +R3hHT3RBYjJnaCsrZ01FdDIxaTE3MHE0dzdsQWVHOQ0KSHpHanJjWGtGdlZSZlBTbXZ0UCth
  17.113 +cS9xa1kyemkzcVo1ZTVmcFpncHlJcXY4T3EwdkE2M1NtWEFrd1ZnaitNMHJpQjJkSWtmRWla
  17.114 +OQ0KWWllVzhwaUxSWkZrb0l4QWxpZEV5MTBmQk4xOXdmL05pL09zRUR0ajN1V1lkbXBTK1hq
  17.115 +ODlFREQwQnhMYWhoYUNQclBxSnU3azJGaQ0KMXhtdFJZTzhZcEJxWmVTalh5OHpWN29EUmhD
  17.116 +eWFCSndBcmxOS2Y2cm9oTG5xM29WWDFLeFRQUlpBd3FjQ1oxaEpTRUFraVE1ejVhQw0KclJU
  17.117 +eCsvSTZRc3JtRk0vdDNBM3RRd0RQRGRpaExMUzhFMWNoekxyRkIwVFd3SUpWeDRtOU9odFR6
  17.118 +SlhqYlhlSGorelR0Zz09DQo9VGVxQw0KLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0st
  17.119 +LS0tLQ0K
  17.120 +--=_0c0c4f5794a2b6faebb4792f1d649487--
  17.121 +