Merge with sync sequoia_windows
authorThomas
Fri, 21 Jun 2019 18:41:56 +0200
branchsequoia_windows
changeset 3868157c5339cbb6
parent 3857 825e175daca0
parent 3867 3de2673a6724
child 3871 d1d515455192
Merge with sync
src/pEpEngine.c
test/src/engine_tests/SyncTests.cc.b0rken
     1.1 --- a/build-mac/pEpEngine.xcodeproj/project.pbxproj	Wed Jun 19 15:47:03 2019 +0200
     1.2 +++ b/build-mac/pEpEngine.xcodeproj/project.pbxproj	Fri Jun 21 18:41:56 2019 +0200
     1.3 @@ -7,6 +7,33 @@
     1.4  	objects = {
     1.5  
     1.6  /* Begin PBXBuildFile section */
     1.7 +		154917FD22B926700091B6D6 /* libnettle.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154917F922B9266F0091B6D6 /* libnettle.a */; };
     1.8 +		154917FE22B926700091B6D6 /* libsequoia_openpgp_ffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154917FA22B926700091B6D6 /* libsequoia_openpgp_ffi.a */; };
     1.9 +		154917FF22B926700091B6D6 /* libhogweed.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154917FB22B926700091B6D6 /* libhogweed.a */; };
    1.10 +		1549180022B926700091B6D6 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 154917FC22B926700091B6D6 /* libgmp.a */; };
    1.11 +		1549181222B92EA20091B6D6 /* libiconv.2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 1549180D22B92EA20091B6D6 /* libiconv.2.tbd */; };
    1.12 +		154918AB22B940200091B6D6 /* fsm_common.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189222B9401D0091B6D6 /* fsm_common.h */; };
    1.13 +		154918AC22B940200091B6D6 /* status_to_string.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189322B9401E0091B6D6 /* status_to_string.h */; };
    1.14 +		154918AF22B940200091B6D6 /* KeySync_fsm.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189622B9401E0091B6D6 /* KeySync_fsm.h */; };
    1.15 +		154918B022B940200091B6D6 /* KeySync_fsm.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189722B9401E0091B6D6 /* KeySync_fsm.c */; };
    1.16 +		154918B122B940200091B6D6 /* Sync_actions.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189822B9401E0091B6D6 /* Sync_actions.c */; };
    1.17 +		154918B222B940200091B6D6 /* aux_mime_msg.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189922B9401E0091B6D6 /* aux_mime_msg.h */; };
    1.18 +		154918B322B940200091B6D6 /* Sync_impl.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189A22B9401E0091B6D6 /* Sync_impl.c */; };
    1.19 +		154918B522B940200091B6D6 /* sync_codec.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189C22B9401E0091B6D6 /* sync_codec.c */; };
    1.20 +		154918B622B940200091B6D6 /* Sync_event.h in Headers */ = {isa = PBXBuildFile; fileRef = 1549189D22B9401F0091B6D6 /* Sync_event.h */; };
    1.21 +		154918B722B940200091B6D6 /* Sync_event.c in Sources */ = {isa = PBXBuildFile; fileRef = 1549189E22B9401F0091B6D6 /* Sync_event.c */; };
    1.22 +		154918B922B940200091B6D6 /* Sync_func.c in Sources */ = {isa = PBXBuildFile; fileRef = 154918A022B9401F0091B6D6 /* Sync_func.c */; };
    1.23 +		154918BA22B940200091B6D6 /* resource_id.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A122B9401F0091B6D6 /* resource_id.h */; };
    1.24 +		154918BB22B940200091B6D6 /* aux_mime_msg.c in Sources */ = {isa = PBXBuildFile; fileRef = 154918A222B9401F0091B6D6 /* aux_mime_msg.c */; };
    1.25 +		154918BC22B940200091B6D6 /* openpgp_compat.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A322B9401F0091B6D6 /* openpgp_compat.h */; };
    1.26 +		154918BD22B940200091B6D6 /* growing_buf.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A422B9401F0091B6D6 /* growing_buf.h */; };
    1.27 +		154918BF22B940200091B6D6 /* sync_codec.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A622B9401F0091B6D6 /* sync_codec.h */; };
    1.28 +		154918C022B940200091B6D6 /* Sync_func.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A722B940200091B6D6 /* Sync_func.h */; };
    1.29 +		154918C222B940200091B6D6 /* Sync_impl.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918A922B940200091B6D6 /* Sync_impl.h */; };
    1.30 +		154918C322B940200091B6D6 /* blacklist.h in Headers */ = {isa = PBXBuildFile; fileRef = 154918AA22B940200091B6D6 /* blacklist.h */; };
    1.31 +		159EF42722B6D3E900149C0C /* pgp_sequoia.c in Sources */ = {isa = PBXBuildFile; fileRef = 159EF42422B6D3E900149C0C /* pgp_sequoia.c */; };
    1.32 +		159EF42822B6D3E900149C0C /* pgp_sequoia.h in Headers */ = {isa = PBXBuildFile; fileRef = 159EF42522B6D3E900149C0C /* pgp_sequoia.h */; };
    1.33 +		159EF42922B6D3E900149C0C /* pgp_sequoia_internal.h in Headers */ = {isa = PBXBuildFile; fileRef = 159EF42622B6D3E900149C0C /* pgp_sequoia_internal.h */; };
    1.34  		15B037AA22B2B822002D664C /* ber_tlv_length.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0373F22B2B816002D664C /* ber_tlv_length.c */; };
    1.35  		15B037AB22B2B822002D664C /* GroupKeys.h in Headers */ = {isa = PBXBuildFile; fileRef = 15B0374022B2B817002D664C /* GroupKeys.h */; };
    1.36  		15B037AC22B2B822002D664C /* CommitAccept.c in Sources */ = {isa = PBXBuildFile; fileRef = 15B0374122B2B817002D664C /* CommitAccept.c */; };
    1.37 @@ -120,28 +147,19 @@
    1.38  		431F04B722733A7E00CCE960 /* key_reset.h in Headers */ = {isa = PBXBuildFile; fileRef = 431F04B222733A7E00CCE960 /* key_reset.h */; };
    1.39  		43370833203C075A004E6547 /* sqlite3.c in Sources */ = {isa = PBXBuildFile; fileRef = 4337082D203C075A004E6547 /* sqlite3.c */; };
    1.40  		43370834203C075A004E6547 /* sqlite3.h in Headers */ = {isa = PBXBuildFile; fileRef = 43370832203C075A004E6547 /* sqlite3.h */; };
    1.41 -		4354FF651D6EDF300033069C /* sync_impl.c in Sources */ = {isa = PBXBuildFile; fileRef = 4354FF641D6EDF300033069C /* sync_impl.c */; };
    1.42 -		438C439B2167582500C7425B /* sync_api.h in Headers */ = {isa = PBXBuildFile; fileRef = 438C43962167582400C7425B /* sync_api.h */; };
    1.43  		438C43B52167752C00C7425B /* labeled_int_list.h in Headers */ = {isa = PBXBuildFile; fileRef = 438C43AF2167752C00C7425B /* labeled_int_list.h */; };
    1.44  		438C43B62167752C00C7425B /* labeled_int_list.c in Sources */ = {isa = PBXBuildFile; fileRef = 438C43B42167752C00C7425B /* labeled_int_list.c */; };
    1.45  		43F6921D1F164A47009418F5 /* resource_id.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F6921C1F164A47009418F5 /* resource_id.c */; };
    1.46 -		43F73BF2216626E100AB4524 /* Sync_func.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73BF1216626E100AB4524 /* Sync_func.c */; };
    1.47  		43F73C0B2166282C00AB4524 /* openpgp_compat.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C032166282C00AB4524 /* openpgp_compat.c */; };
    1.48 -		43F73C0C2166282C00AB4524 /* Sync_event.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C042166282C00AB4524 /* Sync_event.c */; };
    1.49  		43F73C0D2166282C00AB4524 /* key_reset.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C052166282C00AB4524 /* key_reset.c */; };
    1.50 -		43F73C0E2166282C00AB4524 /* sync_codec.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C062166282C00AB4524 /* sync_codec.c */; };
    1.51 -		43F73C0F2166282C00AB4524 /* KeySync_fsm.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C072166282C00AB4524 /* KeySync_fsm.c */; };
    1.52  		43F73C112166282C00AB4524 /* sync_api.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C092166282C00AB4524 /* sync_api.c */; };
    1.53  		43F73C122166282C00AB4524 /* growing_buf.c in Sources */ = {isa = PBXBuildFile; fileRef = 43F73C0A2166282C00AB4524 /* growing_buf.c */; };
    1.54 -		6400FB861B8CA1C6005221E3 /* libnetpgp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 645922521B8BD32B00A5AF93 /* libnetpgp.a */; };
    1.55  		6400FB8B1B8CA1CF005221E3 /* libetpan-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 64289E371B8B630200FC617B /* libetpan-ios.a */; };
    1.56  		644297C51BE11CE0002BC73B /* system.db in Resources */ = {isa = PBXBuildFile; fileRef = 64951A1B1BE0FCD800B10E71 /* system.db */; };
    1.57  		6467888C1CEB3D120001F54C /* map_asn1.c in Sources */ = {isa = PBXBuildFile; fileRef = 646788871CEB3D120001F54C /* map_asn1.c */; };
    1.58  		6467888D1CEB3D120001F54C /* map_asn1.h in Headers */ = {isa = PBXBuildFile; fileRef = 646788881CEB3D120001F54C /* map_asn1.h */; };
    1.59 -		646C41451D510D2C00C63EFF /* sync_actions.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C413E1D510D2C00C63EFF /* sync_actions.c */; };
    1.60  		646C414E1D510D8800C63EFF /* baseprotocol.c in Sources */ = {isa = PBXBuildFile; fileRef = 646C414C1D510D8800C63EFF /* baseprotocol.c */; };
    1.61  		646C414F1D510D8800C63EFF /* baseprotocol.h in Headers */ = {isa = PBXBuildFile; fileRef = 646C414D1D510D8800C63EFF /* baseprotocol.h */; };
    1.62 -		649DE08B1B45C19100912F72 /* libcurl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 649DE08A1B45C19100912F72 /* libcurl.a */; };
    1.63  		64A826781B455D0800EECAF0 /* bloblist.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8264C1B455D0800EECAF0 /* bloblist.c */; };
    1.64  		64A826791B455D0800EECAF0 /* cryptotech.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8264E1B455D0800EECAF0 /* cryptotech.c */; };
    1.65  		64A8267A1B455D0800EECAF0 /* email.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A826511B455D0800EECAF0 /* email.c */; };
    1.66 @@ -152,7 +170,6 @@
    1.67  		64A8267F1B455D0800EECAF0 /* message.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8265B1B455D0800EECAF0 /* message.c */; };
    1.68  		64A826801B455D0800EECAF0 /* mime.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8265D1B455D0800EECAF0 /* mime.c */; };
    1.69  		64A826811B455D0800EECAF0 /* pEpEngine.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A826601B455D0800EECAF0 /* pEpEngine.c */; };
    1.70 -		64A826821B455D0800EECAF0 /* pgp_netpgp.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A826631B455D0800EECAF0 /* pgp_netpgp.c */; };
    1.71  		64A826831B455D0800EECAF0 /* platform_unix.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A826651B455D0800EECAF0 /* platform_unix.c */; };
    1.72  		64A826861B455D0800EECAF0 /* stringlist.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8266D1B455D0800EECAF0 /* stringlist.c */; };
    1.73  		64A826871B455D0800EECAF0 /* stringpair.c in Sources */ = {isa = PBXBuildFile; fileRef = 64A8266F1B455D0800EECAF0 /* stringpair.c */; };
    1.74 @@ -200,20 +217,6 @@
    1.75  			remoteGlobalIDString = C682E21815B315EF00BE9DA7;
    1.76  			remoteInfo = "libetpan ios";
    1.77  		};
    1.78 -		645922511B8BD32B00A5AF93 /* PBXContainerItemProxy */ = {
    1.79 -			isa = PBXContainerItemProxy;
    1.80 -			containerPortal = 64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */;
    1.81 -			proxyType = 2;
    1.82 -			remoteGlobalIDString = 64AA9C201B45686800D0F542;
    1.83 -			remoteInfo = netpgp;
    1.84 -		};
    1.85 -		645922531B8BD53F00A5AF93 /* PBXContainerItemProxy */ = {
    1.86 -			isa = PBXContainerItemProxy;
    1.87 -			containerPortal = 64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */;
    1.88 -			proxyType = 1;
    1.89 -			remoteGlobalIDString = 64AA9C1F1B45686800D0F542;
    1.90 -			remoteInfo = netpgp;
    1.91 -		};
    1.92  /* End PBXContainerItemProxy section */
    1.93  
    1.94  /* Begin PBXCopyFilesBuildPhase section */
    1.95 @@ -229,6 +232,34 @@
    1.96  /* End PBXCopyFilesBuildPhase section */
    1.97  
    1.98  /* Begin PBXFileReference section */
    1.99 +		154917F922B9266F0091B6D6 /* libnettle.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libnettle.a; path = ../../sequoia4ios/build/lib/libnettle.a; sourceTree = "<group>"; };
   1.100 +		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.101 +		154917FB22B926700091B6D6 /* libhogweed.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libhogweed.a; path = ../../sequoia4ios/build/lib/libhogweed.a; sourceTree = "<group>"; };
   1.102 +		154917FC22B926700091B6D6 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libgmp.a; path = ../../sequoia4ios/build/lib/libgmp.a; sourceTree = "<group>"; };
   1.103 +		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.104 +		1549181322B92EA50091B6D6 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
   1.105 +		1549189222B9401D0091B6D6 /* fsm_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fsm_common.h; path = ../src/fsm_common.h; sourceTree = "<group>"; };
   1.106 +		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.107 +		1549189622B9401E0091B6D6 /* KeySync_fsm.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = KeySync_fsm.h; path = ../src/KeySync_fsm.h; sourceTree = "<group>"; };
   1.108 +		1549189722B9401E0091B6D6 /* KeySync_fsm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = KeySync_fsm.c; path = ../src/KeySync_fsm.c; sourceTree = "<group>"; };
   1.109 +		1549189822B9401E0091B6D6 /* Sync_actions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_actions.c; path = ../src/Sync_actions.c; sourceTree = "<group>"; };
   1.110 +		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.111 +		1549189A22B9401E0091B6D6 /* Sync_impl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_impl.c; path = ../src/Sync_impl.c; sourceTree = "<group>"; };
   1.112 +		1549189C22B9401E0091B6D6 /* sync_codec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_codec.c; path = ../src/sync_codec.c; sourceTree = "<group>"; };
   1.113 +		1549189D22B9401F0091B6D6 /* Sync_event.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sync_event.h; path = ../src/Sync_event.h; sourceTree = "<group>"; };
   1.114 +		1549189E22B9401F0091B6D6 /* Sync_event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_event.c; path = ../src/Sync_event.c; sourceTree = "<group>"; };
   1.115 +		154918A022B9401F0091B6D6 /* Sync_func.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_func.c; path = ../src/Sync_func.c; sourceTree = "<group>"; };
   1.116 +		154918A122B9401F0091B6D6 /* resource_id.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = resource_id.h; path = ../src/resource_id.h; sourceTree = "<group>"; };
   1.117 +		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.118 +		154918A322B9401F0091B6D6 /* openpgp_compat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = openpgp_compat.h; path = ../src/openpgp_compat.h; sourceTree = "<group>"; };
   1.119 +		154918A422B9401F0091B6D6 /* growing_buf.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = growing_buf.h; path = ../src/growing_buf.h; sourceTree = "<group>"; };
   1.120 +		154918A622B9401F0091B6D6 /* sync_codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sync_codec.h; path = ../src/sync_codec.h; sourceTree = "<group>"; };
   1.121 +		154918A722B940200091B6D6 /* Sync_func.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sync_func.h; path = ../src/Sync_func.h; sourceTree = "<group>"; };
   1.122 +		154918A922B940200091B6D6 /* Sync_impl.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Sync_impl.h; path = ../src/Sync_impl.h; sourceTree = "<group>"; };
   1.123 +		154918AA22B940200091B6D6 /* blacklist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = blacklist.h; path = ../src/blacklist.h; sourceTree = "<group>"; };
   1.124 +		159EF42422B6D3E900149C0C /* pgp_sequoia.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pgp_sequoia.c; path = ../src/pgp_sequoia.c; sourceTree = "<group>"; };
   1.125 +		159EF42522B6D3E900149C0C /* pgp_sequoia.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pgp_sequoia.h; path = ../src/pgp_sequoia.h; sourceTree = "<group>"; };
   1.126 +		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.127  		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.128  		15B0374022B2B817002D664C /* GroupKeys.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GroupKeys.h; path = ../asn.1/GroupKeys.h; sourceTree = "<group>"; };
   1.129  		15B0374122B2B817002D664C /* CommitAccept.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = CommitAccept.c; path = ../asn.1/CommitAccept.c; sourceTree = "<group>"; };
   1.130 @@ -342,30 +373,23 @@
   1.131  		431F04B222733A7E00CCE960 /* key_reset.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = key_reset.h; path = ../src/key_reset.h; sourceTree = "<group>"; };
   1.132  		4337082D203C075A004E6547 /* sqlite3.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sqlite3.c; path = ../src/sqlite3.c; sourceTree = "<group>"; };
   1.133  		43370832203C075A004E6547 /* sqlite3.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sqlite3.h; path = ../src/sqlite3.h; sourceTree = "<group>"; };
   1.134 -		4354FF641D6EDF300033069C /* sync_impl.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_impl.c; path = ../src/sync_impl.c; sourceTree = "<group>"; };
   1.135  		438C43962167582400C7425B /* sync_api.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = sync_api.h; path = ../src/sync_api.h; sourceTree = "<group>"; };
   1.136  		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.137  		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.138  		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.139  		43F6921C1F164A47009418F5 /* resource_id.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = resource_id.c; path = ../src/resource_id.c; sourceTree = "<group>"; };
   1.140 -		43F73BF1216626E100AB4524 /* Sync_func.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_func.c; path = ../src/Sync_func.c; sourceTree = "<group>"; };
   1.141  		43F73C032166282C00AB4524 /* openpgp_compat.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = openpgp_compat.c; path = ../src/openpgp_compat.c; sourceTree = "<group>"; };
   1.142 -		43F73C042166282C00AB4524 /* Sync_event.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = Sync_event.c; path = ../src/Sync_event.c; sourceTree = "<group>"; };
   1.143  		43F73C052166282C00AB4524 /* key_reset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = key_reset.c; path = ../src/key_reset.c; sourceTree = "<group>"; };
   1.144 -		43F73C062166282C00AB4524 /* sync_codec.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_codec.c; path = ../src/sync_codec.c; sourceTree = "<group>"; };
   1.145 -		43F73C072166282C00AB4524 /* KeySync_fsm.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = KeySync_fsm.c; path = ../src/KeySync_fsm.c; sourceTree = "<group>"; };
   1.146  		43F73C092166282C00AB4524 /* sync_api.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_api.c; path = ../src/sync_api.c; sourceTree = "<group>"; };
   1.147  		43F73C0A2166282C00AB4524 /* growing_buf.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = growing_buf.c; path = ../src/growing_buf.c; sourceTree = "<group>"; };
   1.148  		644297BF1BE11C65002BC73B /* pEpTrustWords.bundle */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = pEpTrustWords.bundle; sourceTree = BUILT_PRODUCTS_DIR; };
   1.149  		644297C11BE11C65002BC73B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
   1.150  		646788871CEB3D120001F54C /* map_asn1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = map_asn1.c; path = ../src/map_asn1.c; sourceTree = "<group>"; };
   1.151  		646788881CEB3D120001F54C /* map_asn1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = map_asn1.h; path = ../src/map_asn1.h; sourceTree = "<group>"; };
   1.152 -		646C413E1D510D2C00C63EFF /* sync_actions.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = sync_actions.c; path = ../src/sync_actions.c; sourceTree = "<group>"; };
   1.153  		646C414C1D510D8800C63EFF /* baseprotocol.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = baseprotocol.c; path = ../src/baseprotocol.c; sourceTree = "<group>"; };
   1.154  		646C414D1D510D8800C63EFF /* baseprotocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = baseprotocol.h; path = ../src/baseprotocol.h; sourceTree = "<group>"; };
   1.155  		64796A3F1B455AA5004B1C24 /* libpEpEngine.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libpEpEngine.a; sourceTree = BUILT_PRODUCTS_DIR; };
   1.156  		64951A1B1BE0FCD800B10E71 /* system.db */ = {isa = PBXFileReference; lastKnownFileType = text; name = system.db; path = ../db/system.db; sourceTree = "<group>"; };
   1.157 -		649DE08A1B45C19100912F72 /* libcurl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libcurl.a; sourceTree = "<group>"; };
   1.158  		64A8264C1B455D0800EECAF0 /* bloblist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = bloblist.c; path = ../src/bloblist.c; sourceTree = "<group>"; };
   1.159  		64A8264D1B455D0800EECAF0 /* bloblist.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bloblist.h; path = ../src/bloblist.h; sourceTree = "<group>"; };
   1.160  		64A8264E1B455D0800EECAF0 /* cryptotech.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = cryptotech.c; path = ../src/cryptotech.c; sourceTree = "<group>"; };
   1.161 @@ -388,9 +412,6 @@
   1.162  		64A8265F1B455D0800EECAF0 /* pEp_internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pEp_internal.h; path = ../src/pEp_internal.h; sourceTree = "<group>"; };
   1.163  		64A826601B455D0800EECAF0 /* pEpEngine.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pEpEngine.c; path = ../src/pEpEngine.c; sourceTree = "<group>"; };
   1.164  		64A826611B455D0800EECAF0 /* pEpEngine.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pEpEngine.h; path = ../src/pEpEngine.h; sourceTree = "<group>"; };
   1.165 -		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.166 -		64A826631B455D0800EECAF0 /* pgp_netpgp.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pgp_netpgp.c; path = ../src/pgp_netpgp.c; sourceTree = "<group>"; };
   1.167 -		64A826641B455D0800EECAF0 /* pgp_netpgp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = pgp_netpgp.h; path = ../src/pgp_netpgp.h; sourceTree = "<group>"; };
   1.168  		64A826651B455D0800EECAF0 /* platform_unix.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = platform_unix.c; path = ../src/platform_unix.c; sourceTree = "<group>"; };
   1.169  		64A826661B455D0800EECAF0 /* platform_unix.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = platform_unix.h; path = ../src/platform_unix.h; sourceTree = "<group>"; };
   1.170  		64A826691B455D0800EECAF0 /* platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = platform.h; path = ../src/platform.h; sourceTree = "<group>"; };
   1.171 @@ -406,7 +427,6 @@
   1.172  		64A826751B455D0800EECAF0 /* transport.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = transport.c; path = ../src/transport.c; sourceTree = "<group>"; };
   1.173  		64A826761B455D0800EECAF0 /* transport.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = transport.h; path = ../src/transport.h; sourceTree = "<group>"; };
   1.174  		64A826771B455D0800EECAF0 /* wrappers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = wrappers.h; path = ../src/wrappers.h; sourceTree = "<group>"; };
   1.175 -		64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = netpgp.xcodeproj; path = "../../netpgp-et/netpgp-xcode/netpgp.xcodeproj"; sourceTree = "<group>"; };
   1.176  		64DA24121B832EBA000BEE80 /* libetpan.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = libetpan.xcodeproj; path = "../../libetpan/build-mac/libetpan.xcodeproj"; sourceTree = "<group>"; };
   1.177  		C46EBAE7216E445F0042A6A3 /* base64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = base64.c; path = ../src/base64.c; sourceTree = "<group>"; };
   1.178  		C46EBAEC216E445F0042A6A3 /* base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = base64.h; path = ../src/base64.h; sourceTree = "<group>"; };
   1.179 @@ -417,6 +437,7 @@
   1.180  			isa = PBXFrameworksBuildPhase;
   1.181  			buildActionMask = 2147483647;
   1.182  			files = (
   1.183 +				1549181222B92EA20091B6D6 /* libiconv.2.tbd in Frameworks */,
   1.184  			);
   1.185  			runOnlyForDeploymentPostprocessing = 0;
   1.186  		};
   1.187 @@ -425,19 +446,33 @@
   1.188  			buildActionMask = 2147483647;
   1.189  			files = (
   1.190  				6400FB8B1B8CA1CF005221E3 /* libetpan-ios.a in Frameworks */,
   1.191 -				6400FB861B8CA1C6005221E3 /* libnetpgp.a in Frameworks */,
   1.192 -				649DE08B1B45C19100912F72 /* libcurl.a in Frameworks */,
   1.193 +				1549180022B926700091B6D6 /* libgmp.a in Frameworks */,
   1.194 +				154917FF22B926700091B6D6 /* libhogweed.a in Frameworks */,
   1.195 +				154917FE22B926700091B6D6 /* libsequoia_openpgp_ffi.a in Frameworks */,
   1.196 +				154917FD22B926700091B6D6 /* libnettle.a in Frameworks */,
   1.197  			);
   1.198  			runOnlyForDeploymentPostprocessing = 0;
   1.199  		};
   1.200  /* End PBXFrameworksBuildPhase section */
   1.201  
   1.202  /* Begin PBXGroup section */
   1.203 -		43D47A89225CC60600E97C5B /* Resources-iPad */ = {
   1.204 +		154917EB22B926080091B6D6 /* Frameworks */ = {
   1.205  			isa = PBXGroup;
   1.206  			children = (
   1.207 +				154917F422B926420091B6D6 /* sequoia4ios */,
   1.208  			);
   1.209 -			name = "Resources-iPad";
   1.210 +			name = Frameworks;
   1.211 +			sourceTree = "<group>";
   1.212 +		};
   1.213 +		154917F422B926420091B6D6 /* sequoia4ios */ = {
   1.214 +			isa = PBXGroup;
   1.215 +			children = (
   1.216 +				154917FC22B926700091B6D6 /* libgmp.a */,
   1.217 +				154917FB22B926700091B6D6 /* libhogweed.a */,
   1.218 +				154917F922B9266F0091B6D6 /* libnettle.a */,
   1.219 +				154917FA22B926700091B6D6 /* libsequoia_openpgp_ffi.a */,
   1.220 +			);
   1.221 +			name = sequoia4ios;
   1.222  			sourceTree = "<group>";
   1.223  		};
   1.224  		6406CE811CE382F400C14D77 /* asn.1 */ = {
   1.225 @@ -572,27 +607,19 @@
   1.226  			path = pEpTrustWords;
   1.227  			sourceTree = "<group>";
   1.228  		};
   1.229 -		6459224E1B8BD32B00A5AF93 /* Products */ = {
   1.230 -			isa = PBXGroup;
   1.231 -			children = (
   1.232 -				645922521B8BD32B00A5AF93 /* libnetpgp.a */,
   1.233 -			);
   1.234 -			name = Products;
   1.235 -			sourceTree = "<group>";
   1.236 -		};
   1.237  		64796A361B455AA5004B1C24 = {
   1.238  			isa = PBXGroup;
   1.239  			children = (
   1.240 -				43D47A89225CC60600E97C5B /* Resources-iPad */,
   1.241 +				1549180D22B92EA20091B6D6 /* libiconv.2.tbd */,
   1.242 +				1549181322B92EA50091B6D6 /* libz.dylib */,
   1.243  				64951A1B1BE0FCD800B10E71 /* system.db */,
   1.244  				64DA24121B832EBA000BEE80 /* libetpan.xcodeproj */,
   1.245 -				64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */,
   1.246 -				649DE08A1B45C19100912F72 /* libcurl.a */,
   1.247  				6406CE811CE382F400C14D77 /* asn.1 */,
   1.248  				64A8264B1B455C5600EECAF0 /* srcref */,
   1.249  				644297C01BE11C65002BC73B /* pEpTrustWords */,
   1.250  				64796A401B455AA5004B1C24 /* Products */,
   1.251  				43D47A8A225CC60600E97C5B /* pEpTrustWords-Info.plist */,
   1.252 +				154917EB22B926080091B6D6 /* Frameworks */,
   1.253  			);
   1.254  			sourceTree = "<group>";
   1.255  		};
   1.256 @@ -608,6 +635,28 @@
   1.257  		64A8264B1B455C5600EECAF0 /* srcref */ = {
   1.258  			isa = PBXGroup;
   1.259  			children = (
   1.260 +				154918A222B9401F0091B6D6 /* aux_mime_msg.c */,
   1.261 +				1549189922B9401E0091B6D6 /* aux_mime_msg.h */,
   1.262 +				154918AA22B940200091B6D6 /* blacklist.h */,
   1.263 +				1549189222B9401D0091B6D6 /* fsm_common.h */,
   1.264 +				154918A422B9401F0091B6D6 /* growing_buf.h */,
   1.265 +				1549189722B9401E0091B6D6 /* KeySync_fsm.c */,
   1.266 +				1549189622B9401E0091B6D6 /* KeySync_fsm.h */,
   1.267 +				154918A322B9401F0091B6D6 /* openpgp_compat.h */,
   1.268 +				154918A122B9401F0091B6D6 /* resource_id.h */,
   1.269 +				1549189322B9401E0091B6D6 /* status_to_string.h */,
   1.270 +				1549189822B9401E0091B6D6 /* Sync_actions.c */,
   1.271 +				1549189C22B9401E0091B6D6 /* sync_codec.c */,
   1.272 +				154918A622B9401F0091B6D6 /* sync_codec.h */,
   1.273 +				1549189E22B9401F0091B6D6 /* Sync_event.c */,
   1.274 +				1549189D22B9401F0091B6D6 /* Sync_event.h */,
   1.275 +				154918A022B9401F0091B6D6 /* Sync_func.c */,
   1.276 +				154918A722B940200091B6D6 /* Sync_func.h */,
   1.277 +				1549189A22B9401E0091B6D6 /* Sync_impl.c */,
   1.278 +				154918A922B940200091B6D6 /* Sync_impl.h */,
   1.279 +				159EF42622B6D3E900149C0C /* pgp_sequoia_internal.h */,
   1.280 +				159EF42422B6D3E900149C0C /* pgp_sequoia.c */,
   1.281 +				159EF42522B6D3E900149C0C /* pgp_sequoia.h */,
   1.282  				C46EBAE7216E445F0042A6A3 /* base64.c */,
   1.283  				C46EBAEC216E445F0042A6A3 /* base64.h */,
   1.284  				438C43B42167752C00C7425B /* labeled_int_list.c */,
   1.285 @@ -616,21 +665,15 @@
   1.286  				43F73C0A2166282C00AB4524 /* growing_buf.c */,
   1.287  				431F04B222733A7E00CCE960 /* key_reset.h */,
   1.288  				43F73C052166282C00AB4524 /* key_reset.c */,
   1.289 -				43F73C072166282C00AB4524 /* KeySync_fsm.c */,
   1.290  				43F73C032166282C00AB4524 /* openpgp_compat.c */,
   1.291  				43F73C092166282C00AB4524 /* sync_api.c */,
   1.292 -				43F73C062166282C00AB4524 /* sync_codec.c */,
   1.293 -				43F73C042166282C00AB4524 /* Sync_event.c */,
   1.294 -				43F73BF1216626E100AB4524 /* Sync_func.c */,
   1.295  				4337082D203C075A004E6547 /* sqlite3.c */,
   1.296  				43370832203C075A004E6547 /* sqlite3.h */,
   1.297  				430BCC472015EE800077E998 /* pEp_string.c */,
   1.298  				430BCC462015EE800077E998 /* pEp_string.h */,
   1.299  				43F6921C1F164A47009418F5 /* resource_id.c */,
   1.300 -				4354FF641D6EDF300033069C /* sync_impl.c */,
   1.301  				646C414C1D510D8800C63EFF /* baseprotocol.c */,
   1.302  				646C414D1D510D8800C63EFF /* baseprotocol.h */,
   1.303 -				646C413E1D510D2C00C63EFF /* sync_actions.c */,
   1.304  				646788871CEB3D120001F54C /* map_asn1.c */,
   1.305  				646788881CEB3D120001F54C /* map_asn1.h */,
   1.306  				430D258A1C9ED75A00B94535 /* blacklist.c */,
   1.307 @@ -656,9 +699,6 @@
   1.308  				64A8265F1B455D0800EECAF0 /* pEp_internal.h */,
   1.309  				64A826601B455D0800EECAF0 /* pEpEngine.c */,
   1.310  				64A826611B455D0800EECAF0 /* pEpEngine.h */,
   1.311 -				64A826621B455D0800EECAF0 /* pgp_netpgp_internal.h */,
   1.312 -				64A826631B455D0800EECAF0 /* pgp_netpgp.c */,
   1.313 -				64A826641B455D0800EECAF0 /* pgp_netpgp.h */,
   1.314  				64A826651B455D0800EECAF0 /* platform_unix.c */,
   1.315  				64A826661B455D0800EECAF0 /* platform_unix.h */,
   1.316  				64A826691B455D0800EECAF0 /* platform.h */,
   1.317 @@ -689,11 +729,13 @@
   1.318  				15B037EF22B2B822002D664C /* ber_decoder.h in Headers */,
   1.319  				15B037B822B2B822002D664C /* NativeInteger.h in Headers */,
   1.320  				438C43B52167752C00C7425B /* labeled_int_list.h in Headers */,
   1.321 +				159EF42822B6D3E900149C0C /* pgp_sequoia.h in Headers */,
   1.322  				15B037E222B2B822002D664C /* per_encoder.h in Headers */,
   1.323  				15B0380F22B2B823002D664C /* Sync.h in Headers */,
   1.324  				15B0380422B2B822002D664C /* constr_SET_OF.h in Headers */,
   1.325  				15B0381322B2B823002D664C /* asn_application.h in Headers */,
   1.326  				15B0380322B2B822002D664C /* OwnKeysRequester.h in Headers */,
   1.327 +				154918AB22B940200091B6D6 /* fsm_common.h in Headers */,
   1.328  				15B037E722B2B822002D664C /* GroupTrustThisKey.h in Headers */,
   1.329  				15B037C522B2B822002D664C /* Beacon.h in Headers */,
   1.330  				15B0380622B2B822002D664C /* CommitAcceptForGroup.h in Headers */,
   1.331 @@ -702,10 +744,13 @@
   1.332  				15B0381222B2B823002D664C /* OwnKeysOfferer.h in Headers */,
   1.333  				15B037ED22B2B822002D664C /* BIT_STRING.h in Headers */,
   1.334  				15B037DC22B2B822002D664C /* constraints.h in Headers */,
   1.335 -				438C439B2167582500C7425B /* sync_api.h in Headers */,
   1.336 +				154918B622B940200091B6D6 /* Sync_event.h in Headers */,
   1.337  				15B037F222B2B822002D664C /* constr_SEQUENCE_OF.h in Headers */,
   1.338  				15B0380022B2B822002D664C /* xer_support.h in Headers */,
   1.339 +				154918C022B940200091B6D6 /* Sync_func.h in Headers */,
   1.340  				15B037CC22B2B822002D664C /* ber_tlv_tag.h in Headers */,
   1.341 +				154918BC22B940200091B6D6 /* openpgp_compat.h in Headers */,
   1.342 +				154918B222B940200091B6D6 /* aux_mime_msg.h in Headers */,
   1.343  				15B0381422B2B823002D664C /* asn_SEQUENCE_OF.h in Headers */,
   1.344  				15B037FA22B2B822002D664C /* INTEGER.h in Headers */,
   1.345  				15B037F322B2B822002D664C /* CommitAccept.h in Headers */,
   1.346 @@ -723,8 +768,10 @@
   1.347  				15B0381022B2B823002D664C /* CommitAcceptRequester.h in Headers */,
   1.348  				15B0380A22B2B822002D664C /* asn_internal.h in Headers */,
   1.349  				15B037D922B2B822002D664C /* xer_encoder.h in Headers */,
   1.350 +				154918C322B940200091B6D6 /* blacklist.h in Headers */,
   1.351  				15B037BF22B2B822002D664C /* BOOLEAN.h in Headers */,
   1.352  				6467888D1CEB3D120001F54C /* map_asn1.h in Headers */,
   1.353 +				154918BA22B940200091B6D6 /* resource_id.h in Headers */,
   1.354  				15B037BA22B2B822002D664C /* asn_system.h in Headers */,
   1.355  				15B037E522B2B822002D664C /* constr_SEQUENCE.h in Headers */,
   1.356  				15B037C822B2B822002D664C /* ISO639-1.h in Headers */,
   1.357 @@ -732,20 +779,26 @@
   1.358  				43370834203C075A004E6547 /* sqlite3.h in Headers */,
   1.359  				15B037D522B2B822002D664C /* TID.h in Headers */,
   1.360  				15B037AD22B2B822002D664C /* Rollback.h in Headers */,
   1.361 +				154918BF22B940200091B6D6 /* sync_codec.h in Headers */,
   1.362  				15B037DB22B2B822002D664C /* asn_codecs_prim.h in Headers */,
   1.363  				431F04B722733A7E00CCE960 /* key_reset.h in Headers */,
   1.364  				64A8268C1B455D9D00EECAF0 /* pEpEngine.h in Headers */,
   1.365 +				154918AC22B940200091B6D6 /* status_to_string.h in Headers */,
   1.366  				15B037DA22B2B822002D664C /* asn_SET_OF.h in Headers */,
   1.367 +				154918C222B940200091B6D6 /* Sync_impl.h in Headers */,
   1.368  				15B037D422B2B822002D664C /* NegotiationRequest.h in Headers */,
   1.369  				430BCC482015EE800077E998 /* pEp_string.h in Headers */,
   1.370  				15B037F122B2B822002D664C /* OCTET_STRING.h in Headers */,
   1.371  				15B037CE22B2B822002D664C /* Hash.h in Headers */,
   1.372  				15B037EE22B2B822002D664C /* der_encoder.h in Headers */,
   1.373 +				159EF42922B6D3E900149C0C /* pgp_sequoia_internal.h in Headers */,
   1.374  				15B037BD22B2B822002D664C /* CommitAcceptOfferer.h in Headers */,
   1.375  				15B037CA22B2B822002D664C /* PrintableString.h in Headers */,
   1.376  				15B037B222B2B822002D664C /* Identity.h in Headers */,
   1.377 +				154918BD22B940200091B6D6 /* growing_buf.h in Headers */,
   1.378  				15B037D322B2B822002D664C /* CommitReject.h in Headers */,
   1.379  				15B0380822B2B822002D664C /* asn_codecs.h in Headers */,
   1.380 +				154918AF22B940200091B6D6 /* KeySync_fsm.h in Headers */,
   1.381  				C46EBAEE216E445F0042A6A3 /* base64.h in Headers */,
   1.382  				15B037F722B2B822002D664C /* per_decoder.h in Headers */,
   1.383  				15B037F022B2B822002D664C /* NegotiationOpen.h in Headers */,
   1.384 @@ -787,7 +840,6 @@
   1.385  			);
   1.386  			dependencies = (
   1.387  				43D47AA1225CC82400E97C5B /* PBXTargetDependency */,
   1.388 -				645922541B8BD53F00A5AF93 /* PBXTargetDependency */,
   1.389  				64289E3F1B8B638800FC617B /* PBXTargetDependency */,
   1.390  			);
   1.391  			name = pEpEngine;
   1.392 @@ -801,7 +853,7 @@
   1.393  		64796A371B455AA5004B1C24 /* Project object */ = {
   1.394  			isa = PBXProject;
   1.395  			attributes = {
   1.396 -				LastUpgradeCheck = 0940;
   1.397 +				LastUpgradeCheck = 1020;
   1.398  				ORGANIZATIONNAME = "p≡p Security S.A.";
   1.399  				TargetAttributes = {
   1.400  					644297BE1BE11C65002BC73B = {
   1.401 @@ -828,10 +880,6 @@
   1.402  					ProductGroup = 64289E2B1B8B630200FC617B /* Products */;
   1.403  					ProjectRef = 64DA24121B832EBA000BEE80 /* libetpan.xcodeproj */;
   1.404  				},
   1.405 -				{
   1.406 -					ProductGroup = 6459224E1B8BD32B00A5AF93 /* Products */;
   1.407 -					ProjectRef = 64DA240C1B832EA0000BEE80 /* netpgp.xcodeproj */;
   1.408 -				},
   1.409  			);
   1.410  			projectRoot = "";
   1.411  			targets = (
   1.412 @@ -863,13 +911,6 @@
   1.413  			remoteRef = 64289E361B8B630200FC617B /* PBXContainerItemProxy */;
   1.414  			sourceTree = BUILT_PRODUCTS_DIR;
   1.415  		};
   1.416 -		645922521B8BD32B00A5AF93 /* libnetpgp.a */ = {
   1.417 -			isa = PBXReferenceProxy;
   1.418 -			fileType = archive.ar;
   1.419 -			path = libnetpgp.a;
   1.420 -			remoteRef = 645922511B8BD32B00A5AF93 /* PBXContainerItemProxy */;
   1.421 -			sourceTree = BUILT_PRODUCTS_DIR;
   1.422 -		};
   1.423  /* End PBXReferenceProxy section */
   1.424  
   1.425  /* Begin PBXResourcesBuildPhase section */
   1.426 @@ -901,7 +942,7 @@
   1.427  			);
   1.428  			runOnlyForDeploymentPostprocessing = 0;
   1.429  			shellPath = /bin/bash;
   1.430 -			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.431 +			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.432  		};
   1.433  		644297C61BE11D00002BC73B /* ShellScript */ = {
   1.434  			isa = PBXShellScriptBuildPhase;
   1.435 @@ -931,12 +972,12 @@
   1.436  			buildActionMask = 2147483647;
   1.437  			files = (
   1.438  				64A826871B455D0800EECAF0 /* stringpair.c in Sources */,
   1.439 -				43F73C0E2166282C00AB4524 /* sync_codec.c in Sources */,
   1.440  				15B037C122B2B822002D664C /* Identity.c in Sources */,
   1.441  				15B037B522B2B822002D664C /* OCTET_STRING.c in Sources */,
   1.442  				64A826831B455D0800EECAF0 /* platform_unix.c in Sources */,
   1.443  				15B0380D22B2B822002D664C /* CommitReject.c in Sources */,
   1.444  				15B0380B22B2B822002D664C /* NativeInteger.c in Sources */,
   1.445 +				154918B322B940200091B6D6 /* Sync_impl.c in Sources */,
   1.446  				15B037E322B2B822002D664C /* GroupKeys.c in Sources */,
   1.447  				15B037B122B2B822002D664C /* NegotiationRequest.c in Sources */,
   1.448  				15B037FC22B2B822002D664C /* Hex.c in Sources */,
   1.449 @@ -945,7 +986,7 @@
   1.450  				15B037B022B2B822002D664C /* UTF8String.c in Sources */,
   1.451  				15B037BE22B2B822002D664C /* ber_tlv_tag.c in Sources */,
   1.452  				15B037FE22B2B822002D664C /* xer_encoder.c in Sources */,
   1.453 -				43F73BF2216626E100AB4524 /* Sync_func.c in Sources */,
   1.454 +				159EF42722B6D3E900149C0C /* pgp_sequoia.c in Sources */,
   1.455  				64A8267B1B455D0800EECAF0 /* etpan_mime.c in Sources */,
   1.456  				15B037AC22B2B822002D664C /* CommitAccept.c in Sources */,
   1.457  				64A8267A1B455D0800EECAF0 /* email.c in Sources */,
   1.458 @@ -956,15 +997,14 @@
   1.459  				15B037E822B2B822002D664C /* constr_TYPE.c in Sources */,
   1.460  				64A826861B455D0800EECAF0 /* stringlist.c in Sources */,
   1.461  				15B037FB22B2B822002D664C /* Hash.c in Sources */,
   1.462 +				154918BB22B940200091B6D6 /* aux_mime_msg.c in Sources */,
   1.463  				15B037CD22B2B822002D664C /* PString.c in Sources */,
   1.464  				15B037F622B2B822002D664C /* Version.c in Sources */,
   1.465  				15B037C622B2B822002D664C /* xer_support.c in Sources */,
   1.466  				15B037EC22B2B822002D664C /* constraints.c in Sources */,
   1.467  				15B0380522B2B822002D664C /* asn_codecs_prim.c in Sources */,
   1.468 -				4354FF651D6EDF300033069C /* sync_impl.c in Sources */,
   1.469  				64A8267E1B455D0800EECAF0 /* message_api.c in Sources */,
   1.470  				15B037D122B2B822002D664C /* per_encoder.c in Sources */,
   1.471 -				64A826821B455D0800EECAF0 /* pgp_netpgp.c in Sources */,
   1.472  				15B037CB22B2B822002D664C /* ISO639-1.c in Sources */,
   1.473  				15B037AF22B2B822002D664C /* constr_SEQUENCE.c in Sources */,
   1.474  				15B037B722B2B822002D664C /* Sync.c in Sources */,
   1.475 @@ -974,7 +1014,6 @@
   1.476  				15B037E122B2B822002D664C /* GroupTrustThisKey.c in Sources */,
   1.477  				43F73C112166282C00AB4524 /* sync_api.c in Sources */,
   1.478  				64A8267D1B455D0800EECAF0 /* keymanagement.c in Sources */,
   1.479 -				646C41451D510D2C00C63EFF /* sync_actions.c in Sources */,
   1.480  				64A8267C1B455D0800EECAF0 /* identity_list.c in Sources */,
   1.481  				43F73C0D2166282C00AB4524 /* key_reset.c in Sources */,
   1.482  				15B0380C22B2B822002D664C /* BOOLEAN.c in Sources */,
   1.483 @@ -983,8 +1022,6 @@
   1.484  				15B037F522B2B822002D664C /* INTEGER.c in Sources */,
   1.485  				15B037C222B2B822002D664C /* asn_SEQUENCE_OF.c in Sources */,
   1.486  				64A826791B455D0800EECAF0 /* cryptotech.c in Sources */,
   1.487 -				43F73C0F2166282C00AB4524 /* KeySync_fsm.c in Sources */,
   1.488 -				43F73C0C2166282C00AB4524 /* Sync_event.c in Sources */,
   1.489  				64A826781B455D0800EECAF0 /* bloblist.c in Sources */,
   1.490  				15B0381122B2B823002D664C /* CommitAcceptForGroup.c in Sources */,
   1.491  				C46EBAED216E445F0042A6A3 /* base64.c in Sources */,
   1.492 @@ -993,22 +1030,27 @@
   1.493  				15B037DD22B2B822002D664C /* Rollback.c in Sources */,
   1.494  				43F73C0B2166282C00AB4524 /* openpgp_compat.c in Sources */,
   1.495  				15B037F422B2B822002D664C /* ber_decoder.c in Sources */,
   1.496 +				154918B022B940200091B6D6 /* KeySync_fsm.c in Sources */,
   1.497  				43370833203C075A004E6547 /* sqlite3.c in Sources */,
   1.498  				15B0380122B2B822002D664C /* asn_SET_OF.c in Sources */,
   1.499 +				154918B522B940200091B6D6 /* sync_codec.c in Sources */,
   1.500  				15B037DE22B2B822002D664C /* KeySync.c in Sources */,
   1.501  				15B037C322B2B822002D664C /* constr_SEQUENCE_OF.c in Sources */,
   1.502  				15B037DF22B2B822002D664C /* IdentityList.c in Sources */,
   1.503  				15B037AE22B2B822002D664C /* NegotiationOpen.c in Sources */,
   1.504 +				154918B122B940200091B6D6 /* Sync_actions.c in Sources */,
   1.505  				15B037B322B2B822002D664C /* Beacon.c in Sources */,
   1.506  				64A826881B455D0800EECAF0 /* timestamp.c in Sources */,
   1.507  				15B037BB22B2B822002D664C /* der_encoder.c in Sources */,
   1.508  				15B037E022B2B822002D664C /* TID.c in Sources */,
   1.509 +				154918B722B940200091B6D6 /* Sync_event.c in Sources */,
   1.510  				43F6921D1F164A47009418F5 /* resource_id.c in Sources */,
   1.511  				15B037AA22B2B822002D664C /* ber_tlv_length.c in Sources */,
   1.512  				15B037F822B2B822002D664C /* OwnKeysOfferer.c in Sources */,
   1.513  				430D258B1C9ED75A00B94535 /* blacklist.c in Sources */,
   1.514  				15B0380E22B2B822002D664C /* PrintableString.c in Sources */,
   1.515  				15B037E922B2B822002D664C /* CommitAcceptOfferer.c in Sources */,
   1.516 +				154918B922B940200091B6D6 /* Sync_func.c in Sources */,
   1.517  				646C414E1D510D8800C63EFF /* baseprotocol.c in Sources */,
   1.518  				15B037C722B2B822002D664C /* per_decoder.c in Sources */,
   1.519  				6467888C1CEB3D120001F54C /* map_asn1.c in Sources */,
   1.520 @@ -1033,11 +1075,6 @@
   1.521  			name = "libetpan ios";
   1.522  			targetProxy = 64289E3E1B8B638800FC617B /* PBXContainerItemProxy */;
   1.523  		};
   1.524 -		645922541B8BD53F00A5AF93 /* PBXTargetDependency */ = {
   1.525 -			isa = PBXTargetDependency;
   1.526 -			name = netpgp;
   1.527 -			targetProxy = 645922531B8BD53F00A5AF93 /* PBXContainerItemProxy */;
   1.528 -		};
   1.529  /* End PBXTargetDependency section */
   1.530  
   1.531  /* Begin XCBuildConfiguration section */
   1.532 @@ -1065,6 +1102,7 @@
   1.533  			isa = XCBuildConfiguration;
   1.534  			buildSettings = {
   1.535  				ALWAYS_SEARCH_USER_PATHS = NO;
   1.536 +				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
   1.537  				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
   1.538  				CLANG_CXX_LIBRARY = "libc++";
   1.539  				CLANG_ENABLE_MODULES = YES;
   1.540 @@ -1096,13 +1134,11 @@
   1.541  				GCC_DYNAMIC_NO_PIC = NO;
   1.542  				GCC_NO_COMMON_BLOCKS = YES;
   1.543  				GCC_OPTIMIZATION_LEVEL = 0;
   1.544 -				GCC_PREPROCESSOR_DEFINITIONS = (
   1.545 -					"DEBUG=1",
   1.546 -					"USE_NETPGP=1",
   1.547 -				);
   1.548 +				GCC_PREPROCESSOR_DEFINITIONS = "USE_SEQUOIA=1";
   1.549  				GCC_SYMBOLS_PRIVATE_EXTERN = NO;
   1.550  				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
   1.551  				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
   1.552 +				GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
   1.553  				GCC_WARN_UNDECLARED_SELECTOR = YES;
   1.554  				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
   1.555  				GCC_WARN_UNUSED_FUNCTION = YES;
   1.556 @@ -1110,10 +1146,9 @@
   1.557  				HEADER_SEARCH_PATHS = (
   1.558  					"$(inherited)",
   1.559  					"$(SRCROOT)",
   1.560 -					"$(SRCROOT)/../../netpgp-et/include/",
   1.561 -					"$(SRCROOT)/../../netpgp-et/src/",
   1.562  					"$(SRCROOT)/../../OpenSSL-for-iPhone/include",
   1.563  					"$(SRCROOT)/../asn.1/",
   1.564 +					"$(PROJECT_DIR)/../../sequoia4ios/build/include",
   1.565  				);
   1.566  				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
   1.567  				MTL_ENABLE_DEBUG_INFO = YES;
   1.568 @@ -1128,6 +1163,7 @@
   1.569  			isa = XCBuildConfiguration;
   1.570  			buildSettings = {
   1.571  				ALWAYS_SEARCH_USER_PATHS = NO;
   1.572 +				CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
   1.573  				CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
   1.574  				CLANG_CXX_LIBRARY = "libc++";
   1.575  				CLANG_ENABLE_MODULES = YES;
   1.576 @@ -1157,9 +1193,10 @@
   1.577  				ENABLE_STRICT_OBJC_MSGSEND = YES;
   1.578  				GCC_C_LANGUAGE_STANDARD = gnu99;
   1.579  				GCC_NO_COMMON_BLOCKS = YES;
   1.580 -				GCC_PREPROCESSOR_DEFINITIONS = "USE_NETPGP=1";
   1.581 +				GCC_PREPROCESSOR_DEFINITIONS = "USE_SEQUOIA=1";
   1.582  				GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
   1.583  				GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
   1.584 +				GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
   1.585  				GCC_WARN_UNDECLARED_SELECTOR = YES;
   1.586  				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
   1.587  				GCC_WARN_UNUSED_FUNCTION = YES;
   1.588 @@ -1167,10 +1204,9 @@
   1.589  				HEADER_SEARCH_PATHS = (
   1.590  					"$(inherited)",
   1.591  					"$(SRCROOT)",
   1.592 -					"$(SRCROOT)/../../netpgp-et/include/",
   1.593 -					"$(SRCROOT)/../../netpgp-et/src/",
   1.594  					"$(SRCROOT)/../../OpenSSL-for-iPhone/include",
   1.595  					"$(SRCROOT)/../asn.1/",
   1.596 +					"$(PROJECT_DIR)/../../sequoia4ios/build/include",
   1.597  				);
   1.598  				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
   1.599  				MTL_ENABLE_DEBUG_INFO = NO;
   1.600 @@ -1185,11 +1221,15 @@
   1.601  		64796A541B455AA5004B1C24 /* Debug */ = {
   1.602  			isa = XCBuildConfiguration;
   1.603  			buildSettings = {
   1.604 +				GCC_PREPROCESSOR_DEFINITIONS = (
   1.605 +					"$(inherited)",
   1.606 +					"DEBUG=1",
   1.607 +				);
   1.608  				HEADER_SEARCH_PATHS = "$(inherited)";
   1.609  				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
   1.610  				LIBRARY_SEARCH_PATHS = (
   1.611  					"$(inherited)",
   1.612 -					"$(PROJECT_DIR)",
   1.613 +					"$(PROJECT_DIR)/../../Sequoia4iOS/build/lib",
   1.614  				);
   1.615  				New_Setting = "";
   1.616  				ONLY_ACTIVE_ARCH = NO;
   1.617 @@ -1199,8 +1239,6 @@
   1.618  				USER_HEADER_SEARCH_PATHS = (
   1.619  					"$(PROJECT_DIR)/../src",
   1.620  					"$(PROJECT_DIR)",
   1.621 -					"$(PROJECT_DIR)/../../netpgp-et/include/",
   1.622 -					"$(PROJECT_DIR)/../../netpgp-et/src/",
   1.623  					"$(PROJECT_DIR)/../../OpenSSL-for-iPhone/include",
   1.624  					"$(PROJECT_DIR)/../asn.1/",
   1.625  					"$(inherited)",
   1.626 @@ -1211,11 +1249,12 @@
   1.627  		64796A551B455AA5004B1C24 /* Release */ = {
   1.628  			isa = XCBuildConfiguration;
   1.629  			buildSettings = {
   1.630 +				GCC_PREPROCESSOR_DEFINITIONS = "$(inherited)";
   1.631  				HEADER_SEARCH_PATHS = "$(inherited)";
   1.632  				IPHONEOS_DEPLOYMENT_TARGET = 8.0;
   1.633  				LIBRARY_SEARCH_PATHS = (
   1.634  					"$(inherited)",
   1.635 -					"$(PROJECT_DIR)",
   1.636 +					"$(PROJECT_DIR)/../../Sequoia4iOS/build/lib",
   1.637  				);
   1.638  				New_Setting = "";
   1.639  				OTHER_LDFLAGS = "-ObjC";
   1.640 @@ -1224,8 +1263,6 @@
   1.641  				USER_HEADER_SEARCH_PATHS = (
   1.642  					"$(PROJECT_DIR)/../src",
   1.643  					"$(PROJECT_DIR)",
   1.644 -					"$(PROJECT_DIR)/../../netpgp-et/include/",
   1.645 -					"$(PROJECT_DIR)/../../netpgp-et/src/",
   1.646  					"$(PROJECT_DIR)/../../OpenSSL-for-iPhone/include",
   1.647  					"$(PROJECT_DIR)/../asn.1/",
   1.648  					"$(inherited)",
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/build-mac/pEpEngine.xcodeproj/xcshareddata/xcschemes/pEpEngine.xcscheme	Fri Jun 21 18:41:56 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/keymanagement.c	Wed Jun 19 15:47:03 2019 +0200
     3.2 +++ b/src/keymanagement.c	Fri Jun 21 18:41:56 2019 +0200
     3.3 @@ -249,7 +249,7 @@
     3.4          case PEP_ct_key_revoked:
     3.5          case PEP_ct_key_b0rken:
     3.6              // delete key from being default key for all users/identities
     3.7 -            status = remove_fpr_as_default(session, fpr);
     3.8 +            status = remove_fpr_as_default(session, fpr); //BUFF: considers the key as "revoked" ...
     3.9              status = update_trust_for_fpr(session, 
    3.10                                            fpr, 
    3.11                                            ct);
    3.12 @@ -257,7 +257,7 @@
    3.13              free(ident->fpr);
    3.14              ident->fpr = NULL;
    3.15              ident->comm_type = ct;            
    3.16 -            status = PEP_KEY_UNSUITABLE;
    3.17 +            status = PEP_KEY_UNSUITABLE; //BUFF: ... and returns PEP_KEY_UNSUITABLE
    3.18          default:
    3.19              break;
    3.20      }            
     4.1 --- a/src/pEpEngine.c	Wed Jun 19 15:47:03 2019 +0200
     4.2 +++ b/src/pEpEngine.c	Fri Jun 21 18:41:56 2019 +0200
     4.3 @@ -4271,9 +4271,33 @@
     4.4              identity->username))
     4.5          return PEP_ILLEGAL_VALUE;
     4.6  
     4.7 +    const char* saved_username = NULL;
     4.8 +    const char* at = NULL;
     4.9 +    size_t uname_len = strlen(identity->username);
    4.10 +    
    4.11 +    if (uname_len > 0)
    4.12 +        at = strstr(identity->username, "@"); 
    4.13 +    
    4.14 +    if (at) {
    4.15 +        saved_username = identity->username;
    4.16 +        identity->username = calloc(uname_len + 3, 1);
    4.17 +        if (!identity->username) {
    4.18 +            identity->username = saved_username;
    4.19 +            return PEP_OUT_OF_MEMORY;
    4.20 +        }
    4.21 +        identity->username[0] = '"';
    4.22 +        strlcpy((identity->username) + 1, saved_username, uname_len + 1);
    4.23 +        identity->username[uname_len + 1] = '"';        
    4.24 +    }
    4.25 +
    4.26      PEP_STATUS status =
    4.27          session->cryptotech[PEP_crypt_OpenPGP].generate_keypair(session,
    4.28                  identity);
    4.29 +                
    4.30 +    if (saved_username) {
    4.31 +        free(identity->username);
    4.32 +        identity->username = saved_username;
    4.33 +    }            
    4.34      if (status != PEP_STATUS_OK)
    4.35          return status;
    4.36  
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/test/include/IOS1664Tests.h	Fri Jun 21 18:41:56 2019 +0200
     5.3 @@ -0,0 +1,19 @@
     5.4 +// This file is under GNU General Public License 3.0
     5.5 +// see LICENSE.txt
     5.6 +
     5.7 +#ifndef I_O_S1664_H
     5.8 +#define I_O_S1664_H
     5.9 +
    5.10 +#include <string>
    5.11 +#include "EngineTestIndividualSuite.h"
    5.12 +
    5.13 +using namespace std;
    5.14 +
    5.15 +class IOS1664Tests : public EngineTestIndividualSuite {
    5.16 +    public:
    5.17 +        IOS1664Tests(string test_suite, string test_home_dir);
    5.18 +    private:
    5.19 +        void check_i_o_s1664();
    5.20 +};
    5.21 +
    5.22 +#endif
     6.1 --- a/test/src/SuiteMaker.cc	Wed Jun 19 15:47:03 2019 +0200
     6.2 +++ b/test/src/SuiteMaker.cc	Fri Jun 21 18:41:56 2019 +0200
     6.3 @@ -19,6 +19,7 @@
     6.4  #include "VerifyTests.h"
     6.5  #include "UserIdCollisionTests.h"
     6.6  #include "Engine463Tests.h"
     6.7 +#include "IOS1664Tests.h"
     6.8  #include "BloblistTests.h"
     6.9  #include "NewUpdateIdAndMyselfTests.h"
    6.10  #include "NoOwnIdentWritesOnDecryptTests.h"
    6.11 @@ -83,6 +84,7 @@
    6.12      "VerifyTests",
    6.13      "UserIdCollisionTests",
    6.14      "Engine463Tests",
    6.15 +    "IOS1664Tests",
    6.16      "BloblistTests",
    6.17      "NewUpdateIdAndMyselfTests",
    6.18      "NoOwnIdentWritesOnDecryptTests",
    6.19 @@ -140,7 +142,7 @@
    6.20  };
    6.21  
    6.22  // This file is generated, so magic constants are ok.
    6.23 -int SuiteMaker::num_suites = 61;
    6.24 +int SuiteMaker::num_suites = 62;
    6.25  
    6.26  void SuiteMaker::suitemaker_build(const char* test_class_name, const char* test_home, Test::Suite** test_suite) {
    6.27      if (strcmp(test_class_name, "URIAddressTests") == 0)
    6.28 @@ -157,6 +159,8 @@
    6.29          *test_suite = new UserIdCollisionTests(test_class_name, test_home);
    6.30      else if (strcmp(test_class_name, "Engine463Tests") == 0)
    6.31          *test_suite = new Engine463Tests(test_class_name, test_home);
    6.32 +    else if (strcmp(test_class_name, "IOS1664Tests") == 0)
    6.33 +        *test_suite = new IOS1664Tests(test_class_name, test_home);
    6.34      else if (strcmp(test_class_name, "BloblistTests") == 0)
    6.35          *test_suite = new BloblistTests(test_class_name, test_home);
    6.36      else if (strcmp(test_class_name, "NewUpdateIdAndMyselfTests") == 0)
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/test/src/engine_tests/IOS1664Tests.cc	Fri Jun 21 18:41:56 2019 +0200
     7.3 @@ -0,0 +1,61 @@
     7.4 +// This file is under GNU General Public License 3.0
     7.5 +// see LICENSE.txt
     7.6 +
     7.7 +#include <stdlib.h>
     7.8 +#include <cstring>
     7.9 +#include <string>
    7.10 +
    7.11 +#include <cpptest.h>
    7.12 +#include "test_util.h"
    7.13 +
    7.14 +#include "pEpEngine.h"
    7.15 +
    7.16 +#include "EngineTestIndividualSuite.h"
    7.17 +#include "IOS1664Tests.h"
    7.18 +#include "mime.h"
    7.19 +
    7.20 +using namespace std;
    7.21 +
    7.22 +IOS1664Tests::IOS1664Tests(string suitename, string test_home_dir) :
    7.23 +    EngineTestIndividualSuite::EngineTestIndividualSuite(suitename, test_home_dir) {
    7.24 +    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("IOS1664Tests::check_i_o_s1664"),
    7.25 +                                                                      static_cast<Func>(&IOS1664Tests::check_i_o_s1664)));
    7.26 +}
    7.27 +
    7.28 +void IOS1664Tests::check_i_o_s1664() {
    7.29 +    string email = slurp("test_mails/0.47.eml");
    7.30 +    TEST_ASSERT(!email.empty());
    7.31 +    
    7.32 +    message* message_mail = NULL;
    7.33 +    
    7.34 +    PEP_STATUS status = mime_decode_message(email.c_str(), email.size(), &message_mail);
    7.35 +    TEST_ASSERT(status == PEP_STATUS_OK && message_mail);
    7.36 +    
    7.37 +    // create own identity here, because we want to reply, before we start.
    7.38 +    pEp_identity* me = new_identity("android01@peptest.ch", NULL, PEP_OWN_USERID, NULL);
    7.39 +    status = myself(session, me);
    7.40 +    
    7.41 +    TEST_ASSERT(status == PEP_STATUS_OK && me->fpr != NULL && me->fpr[0] != '\0');
    7.42 +    
    7.43 +    // Ok, now read the message
    7.44 +    message* read_message = NULL;
    7.45 +    stringlist_t* keylist;
    7.46 +    PEP_rating rating;
    7.47 +    PEP_decrypt_flags_t flags = 0;
    7.48 +    
    7.49 +    status = decrypt_message(session, message_mail, &read_message, &keylist, &rating, &flags);
    7.50 +    TEST_ASSERT(status == PEP_UNENCRYPTED);
    7.51 +    
    7.52 +    pEp_identity* you = new_identity("superxat@gmail.com", NULL, NULL, NULL);
    7.53 +    
    7.54 +    message* out_msg = new_message(PEP_dir_outgoing);
    7.55 +    out_msg->from = me;
    7.56 +    out_msg->to = new_identity_list(you);
    7.57 +    out_msg->shortmsg = strdup("Hussidente 2020!");
    7.58 +    out_msg->longmsg = strdup("A Huss in every office!");
    7.59 +    
    7.60 +    status = outgoing_message_rating(session, out_msg, &rating);
    7.61 +    TEST_ASSERT(rating == PEP_rating_unencrypted);
    7.62 +    
    7.63 +    TEST_ASSERT(true);
    7.64 +}
     8.1 --- a/test/src/engine_tests/SyncTests.cc.b0rken	Wed Jun 19 15:47:03 2019 +0200
     8.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.3 @@ -1,179 +0,0 @@
     8.4 -// This file is under GNU General Public License 3.0
     8.5 -// see LICENSE.txt
     8.6 -
     8.7 -#include <stdlib.h>
     8.8 -#include <string>
     8.9 -
    8.10 -#include "pEpEngine.h"
    8.11 -
    8.12 -#include "pEp_internal.h"
    8.13 -#include "KeySync_fsm.h"
    8.14 -#include "sync_codec.h"
    8.15 -
    8.16 -#include "EngineTestSessionSuite.h"
    8.17 -#include "SyncTests.h"
    8.18 -
    8.19 -using namespace std;
    8.20 -
    8.21 -void Sync_Adapter::processing()
    8.22 -{
    8.23 -    cout << "waiting for processing\n";
    8.24 -    while (!q.empty()) {
    8.25 -        nanosleep((const struct timespec[]){{0, 100000000L}}, NULL);
    8.26 -    }
    8.27 -}
    8.28 -
    8.29 -PEP_STATUS Sync_Adapter::notifyHandshake(
    8.30 -        pEp_identity *me,
    8.31 -        pEp_identity *partner,
    8.32 -        sync_handshake_signal signal
    8.33 -    )
    8.34 -{
    8.35 -    return PEP_STATUS_OK;
    8.36 -}
    8.37 -
    8.38 -int Sync_Adapter::inject_sync_event(SYNC_EVENT ev, void *management)
    8.39 -{
    8.40 -    Sync_event_t *_ev = ev;
    8.41 -    switch (_ev->fsm) {
    8.42 -        case Sync_PR_keysync:
    8.43 -            cout << "injecting event " << KeySync_event_name(_ev->event) << "\n";
    8.44 -            break;
    8.45 -        default:
    8.46 -            cout << "unknown state machine: " << _ev->fsm << "\n";
    8.47 -            assert(0);
    8.48 -    }
    8.49 -    auto adapter = static_cast< Sync_Adapter *>(management);
    8.50 -    adapter->q.push_front(ev);
    8.51 -    return 0;
    8.52 -}
    8.53 -
    8.54 -Sync_event_t *Sync_Adapter::retrieve_next_sync_event(void *management, time_t threshold)
    8.55 -{
    8.56 -    auto adapter = static_cast< Sync_Adapter *>(management);
    8.57 -    time_t started = time(nullptr);
    8.58 -    bool timeout = false;
    8.59 -
    8.60 -    while (adapter->q.empty()) {
    8.61 -        int i = 0;
    8.62 -        ++i;
    8.63 -        if (i > 10) {
    8.64 -            if (time(nullptr) > started + threshold) {
    8.65 -                timeout = true;
    8.66 -                break;
    8.67 -            }
    8.68 -            i = 0;
    8.69 -        }
    8.70 -        nanosleep((const struct timespec[]){{0, 100000000L}}, NULL);
    8.71 -    }
    8.72 -
    8.73 -    if (timeout)
    8.74 -        return SYNC_TIMEOUT_EVENT;
    8.75 -
    8.76 -    Sync_event_t *ev = adapter->q.pop_front();
    8.77 -    if (ev) {
    8.78 -        switch (ev->fsm) {
    8.79 -            case Sync_PR_keysync:
    8.80 -                cout << "sync thread: retrieving event " << KeySync_event_name(ev->event) << "\n";
    8.81 -                break;
    8.82 -            default:
    8.83 -                cout << "sync thread: unknown state machine: " << ev->fsm << "\n";
    8.84 -                assert(0);
    8.85 -        }
    8.86 -    }
    8.87 -    else {
    8.88 -        cout << "sync thread: retrieving shutdown\n";
    8.89 -    }
    8.90 -
    8.91 -    return ev;
    8.92 -}
    8.93 -
    8.94 -PEP_STATUS Sync_Adapter::messageToSend(struct _message *msg)
    8.95 -{
    8.96 -    assert(msg && msg->attachments);
    8.97 -    
    8.98 -    cout << "sending message:\n";
    8.99 -
   8.100 -    for (bloblist_t *b = msg->attachments; b && b->value; b = b->next) {
   8.101 -        if (b->mime_type && strcasecmp(b->mime_type, "application/pEp.sync") == 0) {
   8.102 -            assert(msg->from && msg->from->address && msg->from->username);
   8.103 -            cout << "<!-- " << msg->from->username << " <" << msg->from->address << "> -->\n";
   8.104 -            char *text = NULL;
   8.105 -            PEP_STATUS status = PER_to_XER_Sync_msg(msg->attachments->value, msg->attachments->size, &text);
   8.106 -            assert(status == PEP_STATUS_OK);
   8.107 -            cout << text << "\n";
   8.108 -            free(text);
   8.109 -        }
   8.110 -    }
   8.111 -
   8.112 -    free_message(msg);
   8.113 -    return PEP_STATUS_OK;
   8.114 -}
   8.115 -
   8.116 -void Sync_Adapter::sync_thread(PEP_SESSION session, Sync_Adapter *adapter)
   8.117 -{
   8.118 -    cout << "sync_thread: startup\n";
   8.119 -    do_sync_protocol(session, adapter);
   8.120 -    cout << "sync_thread: shutdown\n";
   8.121 -}
   8.122 -
   8.123 -SyncTests::SyncTests(string suitename, string test_home_dir) :
   8.124 -    EngineTestSessionSuite::EngineTestSessionSuite(suitename, test_home_dir) {
   8.125 -    add_test_to_suite(std::pair<std::string, void (Test::Suite::*)()>(string("SyncTests::check_sync"),
   8.126 -                                                                      static_cast<Func>(&SyncTests::check_sync)));
   8.127 -}
   8.128 -
   8.129 -void SyncTests::setup()
   8.130 -{
   8.131 -    EngineTestSessionSuite::setup();
   8.132 -
   8.133 -    pEp_identity *self = new_identity("alice@synctests.pEp", nullptr, "23", "Alice Miller");
   8.134 -    assert(self);
   8.135 -    cout << "setting own identity for " << self->address << "\n";
   8.136 -    PEP_STATUS status = myself(session, self);
   8.137 -    assert(self->me);
   8.138 -    assert(self->fpr);
   8.139 -    cout << "fpr: " << self->fpr << "\n";
   8.140 -    free_identity(self);
   8.141 -
   8.142 -    status = init(&sync, Sync_Adapter::messageToSend, Sync_Adapter::inject_sync_event);
   8.143 -    TEST_ASSERT(status == PEP_STATUS_OK);
   8.144 -
   8.145 -    cout << "initialize sync and start first state machine\n";
   8.146 -    status = register_sync_callbacks(
   8.147 -            sync,
   8.148 -            (void *) &adapter.q,
   8.149 -            Sync_Adapter::notifyHandshake,
   8.150 -            Sync_Adapter::retrieve_next_sync_event
   8.151 -        );
   8.152 -    TEST_ASSERT(status == PEP_STATUS_OK);
   8.153 -    TEST_ASSERT(sync->sync_state.keysync.state == Sole);
   8.154 -
   8.155 -    cout << "creating thread for sync\n";
   8.156 -    sync_thread = new thread(Sync_Adapter::sync_thread, sync, &adapter);
   8.157 -}
   8.158 -
   8.159 -void SyncTests::tear_down()
   8.160 -{
   8.161 -    adapter.processing();
   8.162 -
   8.163 -    cout << "sending shutdown to sync thread\n";
   8.164 -    adapter.q.push_front(nullptr);
   8.165 -    sync_thread->join();
   8.166 -
   8.167 -    unregister_sync_callbacks(sync);
   8.168 -    release(sync);
   8.169 -
   8.170 -    EngineTestSessionSuite::tear_down();
   8.171 -}
   8.172 -
   8.173 -void SyncTests::check_sync()
   8.174 -{
   8.175 -    cout << "check_sync(): trigger KeyGen event\n";
   8.176 -    signal_Sync_event(sync, Sync_PR_keysync, KeyGen);
   8.177 -    adapter.processing();
   8.178 -
   8.179 -    cout << "check_sync(): cry for unknown key\n";
   8.180 -    signal_Sync_event(sync, Sync_PR_keysync, CannotDecrypt);
   8.181 -}
   8.182 -
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/test/test_mails/0.47.eml	Fri Jun 21 18:41:56 2019 +0200
     9.3 @@ -0,0 +1,118 @@
     9.4 +Return-Path: <superxat@gmail.com>
     9.5 +X-Original-To: android01@peptest.ch
     9.6 +Delivered-To: android01@peptest.ch
     9.7 +Received: from mail-wm1-f48.google.com (mail-wm1-f48.google.com [209.85.128.48])
     9.8 +	by peptest.ch (Postfix) with ESMTPS id B28651A1A37
     9.9 +	for <android01@peptest.ch>; Wed, 19 Jun 2019 13:30:48 +0200 (CEST)
    9.10 +Authentication-Results: plesk.peptest.ch;
    9.11 +        spf=pass (sender IP is 209.85.128.48) smtp.mailfrom=superxat@gmail.com smtp.helo=mail-wm1-f48.google.com
    9.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;
    9.13 +Received: by mail-wm1-f48.google.com with SMTP id c6so1452126wml.0
    9.14 +        for <android01@peptest.ch>; Wed, 19 Jun 2019 04:30:48 -0700 (PDT)
    9.15 +DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
    9.16 +        d=gmail.com; s=20161025;
    9.17 +        h=date:subject:message-id:mime-version:from:to
    9.18 +         :content-transfer-encoding:content-disposition;
    9.19 +        bh=NUw9sOoAh+T9dS39iJIrhWdmODeTKEUilqsSegM8sFY=;
    9.20 +        b=P7PQKOsF5/fo55wQh0OSf0TmwvGkefdBetMjGbNU+3YMI9ivYIcA1d/BS0acEc680t
    9.21 +         8hXsylVmD0+W51dkKDRoD0eMOI+lRy0km3i3ndTghVWQkwC4qmlcX3m9+l7JqoBK1WfS
    9.22 +         LLQLVmYIoqOVOKeDt1Gin93KKU7UJrnxTWmQBtwStvTtBf55W9oSfwimQw4vMQ9dC18b
    9.23 +         ZIxdIF718uUgoeNoBDCwIZSEhrx2BrtMIwQLMCo3N3tj90teB+J2RzyR1/WK5baZSYTx
    9.24 +         jFEP820+8ijVkbfBeGe/NXO8lhjkcBJpMRt8u6hEwaYfqCHti5nNxkBPz5DTMaSpwr/i
    9.25 +         frvw==
    9.26 +X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
    9.27 +        d=1e100.net; s=20161025;
    9.28 +        h=x-gm-message-state:date:subject:message-id:mime-version:from:to
    9.29 +         :content-transfer-encoding:content-disposition;
    9.30 +        bh=NUw9sOoAh+T9dS39iJIrhWdmODeTKEUilqsSegM8sFY=;
    9.31 +        b=uh9pKjfFTmrFiQ0FGn451jB7OLbRwzdgsMUkI005vc/mFKzVl2ON/+DhBdgHn32fat
    9.32 +         NFLXoDWJLxOdmHa4AHZFuNzlq2FkuMcHol71/TrwfpcLua7lv91xK1QyNAOiZTr+svHF
    9.33 +         OvHJfnwQDgDEKvujrDSNtiouClF8PDn3xL14oleqWHJVof/xu1g85udfrz9oCRB75LEx
    9.34 +         MQMdg/2dZG2VOyU5oL0GxFWkJklwbVRetmeedXW03LT6nHMxgiTvu8w763Xrc6qiQg8i
    9.35 +         E6YrGGYcGkQ2Yz+ktTWPfNRbAYqXWIcl4hTWfgz/EfA++YADsLfylsQFbLEjrzqPl3ta
    9.36 +         n42Q==
    9.37 +X-Gm-Message-State: APjAAAVz898EiKLpVhBB5cId5eBhi5M165QEihBzgqQYtn4mwKLXTvmm
    9.38 +	Zcj9EtC70y+1hUOijZcR0t20kv+pORU=
    9.39 +X-Google-Smtp-Source: APXvYqzwqwDR8fIHgK/akmZKDj40939fHnZCMvbJkqGJO8FJBA1CNtsOeeD/o9+oPXxSOes9wcFivw==
    9.40 +X-Received: by 2002:a1c:7614:: with SMTP id r20mr8454522wmc.142.1560943846238;
    9.41 +        Wed, 19 Jun 2019 04:30:46 -0700 (PDT)
    9.42 +Received: from pretty.Easy.privacy (58.red-79-153-28.dynamicip.rima-tde.net. [79.153.28.58])
    9.43 +        by smtp.gmail.com with ESMTPSA id l1sm27960688wrf.46.2019.06.19.04.30.45
    9.44 +        for <android01@peptest.ch>
    9.45 +        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
    9.46 +        Wed, 19 Jun 2019 04:30:45 -0700 (PDT)
    9.47 +Date: Wed, 19 Jun 2019 13:30:45 +0200
    9.48 +Subject: Tralal
    9.49 +Message-ID: <D5AB23C6.36B2.4D51.9FED.2B89DA8E24F0@pretty.Easy.privacy>
    9.50 +MIME-Version: 1.0
    9.51 +From: "Superxat" <superxat@gmail.com>
    9.52 +To: "android01@peptest.ch" <android01@peptest.ch>
    9.53 +X-pEp-Version: 2.0
    9.54 +Content-Transfer-Encoding: 8bit
    9.55 +Content-Type: multipart/related; charset="UTF-8";
    9.56 +	boundary="=_0c0c4f5794a2b6faebb4792f1d649487"
    9.57 +Content-Disposition: inline
    9.58 +
    9.59 +--=_0c0c4f5794a2b6faebb4792f1d649487
    9.60 +Content-Type: multipart/alternative; charset="UTF-8";
    9.61 +	boundary="=_14547b0f3d5cfa991974970b718011b9"
    9.62 +Content-Disposition: inline
    9.63 +
    9.64 +--=_14547b0f3d5cfa991974970b718011b9
    9.65 +Content-Transfer-Encoding: 8bit
    9.66 +Content-Type: text/plain; charset="UTF-8"
    9.67 +Content-Disposition: inline
    9.68 +
    9.69 +Jzbf 
    9.70 +
    9.71 +
    9.72 +sent with p≡p
    9.73 +
    9.74 +--=_14547b0f3d5cfa991974970b718011b9
    9.75 +Content-Transfer-Encoding: 8bit
    9.76 +Content-Type: text/html; charset="UTF-8"
    9.77 +Content-Disposition: inline
    9.78 +
    9.79 +<p>Jzbf</p>
    9.80 +<p><a href="https://pep.software" style="color:#1AAA50; text-decoration: none;">sent with p≡p</a></p>
    9.81 +--=_14547b0f3d5cfa991974970b718011b9--
    9.82 +
    9.83 +--=_0c0c4f5794a2b6faebb4792f1d649487
    9.84 +Content-Transfer-Encoding: base64
    9.85 +Content-Type: application/pgp-keys; charset="UTF-8"; name="pEpkey.asc"
    9.86 +Content-Disposition: attachment; filename="pEpkey.asc"
    9.87 +
    9.88 +LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQpWZXJzaW9uOiBOZXRQR1Ag
    9.89 +Zm9yIHBFcCAzLjk5Ljk5L1tiZXRhMF0NCg0KeHNGTkJGMEtITWtCRUFDMHM2MUI2dXlGREI0
    9.90 +WjNoQ3h1SDJkSGltdzltT0dxUlNTR2g5dW10czh5NGs4VUJmbFlkOE43T3lIM21wQw0KMVJm
    9.91 +L2J3d1FESjBkMUFuUUZrdmNHOWdkQXEyTXREZHZzbGlyV1krQm1oZEtDdVVCSWxuWXhrbGRt
    9.92 +cUlGSVpQc1ZJam5JNG1WK3cxMg0KakFmYk9MSEZNQnhiNXdFSUZVcVpzZ25wQklsTVlNN2Nt
    9.93 +L05HdVlkc2pzWGl0MC93U3FxOXkySTBTL25MRWFYaXZIUmF4WmRyaFNzOA0Kb1IrTU5TVW5O
    9.94 +MGZsOElETnV1QUp6U0RNbzljZGwwQk1uN2ZTdWYyWXhMUlA0WWZGTHhGWGhPTStlQjNETnQ5
    9.95 +R2ZTZ0dVTFBQRStLcw0KVktuWkxCLzBlUEtSNWZhWDV4Rjllb2tEZlR0T3l1ZnJPRFdJK3FU
    9.96 +eElubUNSQzg4VFRGMGhiMTFTMGFzd0FnZW44c3QyNTBBQnFyeg0KQWVWc1Vtc2prMmR0REhM
    9.97 +TzJBaGxBQ3FVRmdOLzV5ckJxWXpvM0lLZVpmNTUxSFdVVzVQVGRmZmdZM1FQNUc5SkVzRVBP
    9.98 +a3R0RTBpYw0KdXdJbHRQS2lQZkZzNmVkMjcyNG9pNS90NVBlbm8vNTdxK2hrTStsS3RodmYy
    9.99 +ZEJleTkzL0FLcGtpN0F4aTJCbjRhRGVEb3JNQnNBZw0KZG9iSHFKVUxBdmVJaDR4VzFTbnJX
   9.100 +dlVMdDZHSUZrbjBISUJqZWhmQkFBejZGVFkwRnpiaFJacHhtaDhBNm5JU2ZZNFdZUTdCbFpl
   9.101 +cA0Kb1V0dFU5MHVEeEZDcWxYdlV1NnViQzhSQ1poNFNJMWd3QktobVZ3MTR4UngrZkNWTFc2
   9.102 +SFRvR0x4UDY5dEYwRGxucUd2YkhaOU1LdA0KRGFTSldNZEQvRUtZR1FBUkFRQUJ6UjFUZFhC
   9.103 +bGNuaGhkQ0E4YzNWd1pYSjRZWFJBWjIxaGFXd3VZMjl0UHNMQmZRUVRBUUlBTVFVQw0KWFFv
   9.104 +Y3lRVUpBZUV6Z0FrUXBSbWp3WmdBY1kwQ0dRRUNHd1lHQ3drSEF3SUJCaFVJQWdrS0N3TVdB
   9.105 +Z01DSGdFQUFHSU1ELzlrSFVZSQ0KN3FTWGo2Q04zeWZBZFlxT05iOGFOWXRjczNhZUd0bjRp
   9.106 +M3htUGw2cTFoR05KV05kTzlmYzhmNFUzSjRleDFBYlY3NFkzckpQT2xEWA0KRzBLZFBRaEVI
   9.107 +Tzhpc2lidkRVcDJoaEhXM20zSGF4dzg0SWY4UDlqUlJBa2JKbk1pVEFwYk9PSElOTCtqY1hz
   9.108 +anU1WHNKeCt5K1NCdQ0KQ3l2TXV4S0VIbnUrZldrWE05RGlKMTJiRjJxNTEwTExjUHR5SVov
   9.109 +azI3S3djemgrdWNQWHhXWHZQbk84MHN3SGpVWVM4L3NydjYrMA0Kcm51dXZvaXlMWlN1bzh1
   9.110 +QUVOZGkrQWdvU0gwMXNZcmxRRHQvSko3OXFxZ1NtcTdYRnpzeElGWFVMTG5ITHVxZmxiTEZm
   9.111 +eUJTMm1wcA0KbUZZa0ZlVWZ5NG9lQmY5NWkxTkVNRWZYNGk3WUhEZVNQT0Jqd1FVRi8vVEpk
   9.112 +R3hHT3RBYjJnaCsrZ01FdDIxaTE3MHE0dzdsQWVHOQ0KSHpHanJjWGtGdlZSZlBTbXZ0UCth
   9.113 +cS9xa1kyemkzcVo1ZTVmcFpncHlJcXY4T3EwdkE2M1NtWEFrd1ZnaitNMHJpQjJkSWtmRWla
   9.114 +OQ0KWWllVzhwaUxSWkZrb0l4QWxpZEV5MTBmQk4xOXdmL05pL09zRUR0ajN1V1lkbXBTK1hq
   9.115 +ODlFREQwQnhMYWhoYUNQclBxSnU3azJGaQ0KMXhtdFJZTzhZcEJxWmVTalh5OHpWN29EUmhD
   9.116 +eWFCSndBcmxOS2Y2cm9oTG5xM29WWDFLeFRQUlpBd3FjQ1oxaEpTRUFraVE1ejVhQw0KclJU
   9.117 +eCsvSTZRc3JtRk0vdDNBM3RRd0RQRGRpaExMUzhFMWNoekxyRkIwVFd3SUpWeDRtOU9odFR6
   9.118 +SlhqYlhlSGorelR0Zz09DQo9VGVxQw0KLS0tLS1FTkQgUEdQIFBVQkxJQyBLRVkgQkxPQ0st
   9.119 +LS0tLQ0K
   9.120 +--=_0c0c4f5794a2b6faebb4792f1d649487--
   9.121 +