From 8106dcc8723a10483308a0a3cc9fe447e9d5362f Mon Sep 17 00:00:00 2001 From: Oliver Wiese <oliver.wiese@fu-berlin.de> Date: Fri, 8 Jun 2018 15:27:40 +0200 Subject: [PATCH] update ObjectivePGP --- ObjectivePGP.framework/Headers/PGPBigNum.h | 21 ++++++ .../Headers/PGPCompressedPacket.h | 25 +++++++ ObjectivePGP.framework/Headers/PGPCryptoCFB.h | 29 ++++++++ .../Headers/PGPFoundation.h | 24 ++++++ .../Headers/PGPKeyMaterial.h | 25 +++++++ .../Headers/PGPLiteralPacket.h | 29 ++++++++ ObjectivePGP.framework/Headers/PGPLogging.h | 33 +++++++++ ObjectivePGP.framework/Headers/PGPMPI.h | 47 ++++++++++++ .../PGPModificationDetectionCodePacket.h | 16 ++++ .../Headers/PGPOnePassSignaturePacket.h | 27 +++++++ ObjectivePGP.framework/Headers/PGPPKCSEme.h | 16 ++++ ObjectivePGP.framework/Headers/PGPPKCSEmsa.h | 16 ++++ ObjectivePGP.framework/Headers/PGPPacket.h | 32 ++++++++ .../Headers/PGPPacketFactory.h | 21 ++++++ .../Headers/PGPPacketProtocol.h | 16 ++++ .../PGPPublicKeyEncryptedSessionKeyPacket.h | 27 +++++++ .../Headers/PGPPublicKeyPacket.h | 41 +++++++++++ .../Headers/PGPPublicSubKeyPacket.h | 16 ++++ ObjectivePGP.framework/Headers/PGPS2K.h | 36 +++++++++ .../Headers/PGPSecretKeyPacket.h | 36 +++++++++ .../Headers/PGPSecretSubKeyPacket.h | 13 ++++ .../Headers/PGPSignaturePacket.h | 73 +++++++++++++++++++ .../Headers/PGPSignatureSubpacket.h | 35 +++++++++ .../PGPSignatureSubpacketCreationTime.h | 31 ++++++++ .../Headers/PGPSignatureSubpacketHeader.h | 22 ++++++ .../PGPSymmetricallyEncryptedDataPacket.h | 14 ++++ ...llyEncryptedIntegrityProtectedDataPacket.h | 25 +++++++ .../Headers/PGPTrustPacket.h | 17 +++++ .../Headers/PGPUserAttributePacket.h | 17 +++++ .../Headers/PGPUserAttributeSubpacket.h | 18 +++++ .../Headers/PGPUserIDPacket.h | 26 +++++++ .../PrivateHeaders/NSMutableArray+PGPUtils.h | 19 +++++ ObjectivePGP.framework/strip-frameworks.sh | 54 ++++++++++++++ enzevalos_iphone/PLists/enzevalos-Info.plist | 4 +- 34 files changed, 899 insertions(+), 2 deletions(-) create mode 100644 ObjectivePGP.framework/Headers/PGPBigNum.h create mode 100644 ObjectivePGP.framework/Headers/PGPCompressedPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPCryptoCFB.h create mode 100644 ObjectivePGP.framework/Headers/PGPFoundation.h create mode 100644 ObjectivePGP.framework/Headers/PGPKeyMaterial.h create mode 100644 ObjectivePGP.framework/Headers/PGPLiteralPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPLogging.h create mode 100644 ObjectivePGP.framework/Headers/PGPMPI.h create mode 100644 ObjectivePGP.framework/Headers/PGPModificationDetectionCodePacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPOnePassSignaturePacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPPKCSEme.h create mode 100644 ObjectivePGP.framework/Headers/PGPPKCSEmsa.h create mode 100644 ObjectivePGP.framework/Headers/PGPPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPPacketFactory.h create mode 100644 ObjectivePGP.framework/Headers/PGPPacketProtocol.h create mode 100644 ObjectivePGP.framework/Headers/PGPPublicKeyEncryptedSessionKeyPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPPublicKeyPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPPublicSubKeyPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPS2K.h create mode 100644 ObjectivePGP.framework/Headers/PGPSecretKeyPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPSecretSubKeyPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPSignaturePacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPSignatureSubpacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPSignatureSubpacketCreationTime.h create mode 100644 ObjectivePGP.framework/Headers/PGPSignatureSubpacketHeader.h create mode 100644 ObjectivePGP.framework/Headers/PGPSymmetricallyEncryptedDataPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPSymmetricallyEncryptedIntegrityProtectedDataPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPTrustPacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPUserAttributePacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPUserAttributeSubpacket.h create mode 100644 ObjectivePGP.framework/Headers/PGPUserIDPacket.h create mode 100644 ObjectivePGP.framework/PrivateHeaders/NSMutableArray+PGPUtils.h create mode 100644 ObjectivePGP.framework/strip-frameworks.sh diff --git a/ObjectivePGP.framework/Headers/PGPBigNum.h b/ObjectivePGP.framework/Headers/PGPBigNum.h new file mode 100644 index 00000000..688e9c29 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPBigNum.h @@ -0,0 +1,21 @@ +// +// PGPBigNum.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 26/06/2017. +// Copyright © 2017 Marcin Krzyżanowski. All rights reserved. +// + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface PGPBigNum : NSObject <NSCopying> + +@property (nonatomic, readonly) unsigned int bitsCount; +@property (nonatomic, readonly) unsigned int bytesCount; +@property (nonatomic, readonly) NSData *data; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPCompressedPacket.h b/ObjectivePGP.framework/Headers/PGPCompressedPacket.h new file mode 100644 index 00000000..02649c8f --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPCompressedPacket.h @@ -0,0 +1,25 @@ +// +// PGPCompressedPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 02/06/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPacket.h" + +// 9.3. Compression Algorithms +typedef NS_ENUM(UInt8, PGPCompressionAlgorithm) { + PGPCompressionUncompressed = 0, + PGPCompressionZIP = 1, // TODO: Unsupported + PGPCompressionZLIB = 2, + PGPCompressionBZIP2 = 3 +}; + +@interface PGPCompressedPacket : PGPPacket +@property (nonatomic, readonly) PGPCompressionAlgorithm compressionType; +@property (nonatomic) NSData *decompressedData; + +- (instancetype)initWithData:(NSData *)dataToCompress type:(PGPCompressionAlgorithm)type; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPCryptoCFB.h b/ObjectivePGP.framework/Headers/PGPCryptoCFB.h new file mode 100644 index 00000000..d47e4c0b --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPCryptoCFB.h @@ -0,0 +1,29 @@ +// +// PGPCryptoCFB.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 05/06/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPS2K.h" +#import "PGPTypes.h" +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface PGPCryptoCFB : NSObject + ++ (nullable NSData *)decryptData:(NSData *)encryptedData + sessionKeyData:(NSData *)sessionKeyData // s2k produceSessionKeyWithPassphrase + symmetricAlgorithm:(PGPSymmetricAlgorithm)symmetricAlgorithm + iv:(NSData *)ivData; + ++ (nullable NSData *)encryptData:(NSData *)encryptedData + sessionKeyData:(NSData *)sessionKeyData // s2k produceSessionKeyWithPassphrase + symmetricAlgorithm:(PGPSymmetricAlgorithm)symmetricAlgorithm + iv:(NSData *)ivData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPFoundation.h b/ObjectivePGP.framework/Headers/PGPFoundation.h new file mode 100644 index 00000000..a4a30464 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPFoundation.h @@ -0,0 +1,24 @@ + +// +// Copyright (c) Marcin Krzyżanowski. All rights reserved. +// +// THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY +// INTERNATIONAL COPYRIGHT LAW. USAGE IS BOUND TO THE LICENSE AGREEMENT. +// This notice may not be removed from this file. +// + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +#define PGPCast(obj, c) ((c * _Nullable) _pgp__cast(obj, c.class)) + +id _Nullable _pgp__cast(id _Nullable obj, Class objClass); + +BOOL PGPEqualObjects(id _Nullable obj1, id _Nullable obj2); + +@interface PGPFoundation : NSObject + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPKeyMaterial.h b/ObjectivePGP.framework/Headers/PGPKeyMaterial.h new file mode 100644 index 00000000..987a3bf8 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPKeyMaterial.h @@ -0,0 +1,25 @@ +// +// PGPKeyMaterial.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 25/08/2017. +// Copyright © 2017 Marcin Krzyżanowski. All rights reserved. +// + +#import <Foundation/Foundation.h> +#import "PGPMPI.h" + +@interface PGPKeyMaterial: NSObject + +@property (nonatomic) PGPMPI *n; +@property (nonatomic) PGPMPI *e; +@property (nonatomic) PGPMPI *d; +@property (nonatomic) PGPMPI *p; +@property (nonatomic) PGPMPI *q; +@property (nonatomic) PGPMPI *r; +@property (nonatomic) PGPMPI *g; +@property (nonatomic) PGPMPI *u; +@property (nonatomic) PGPMPI *x; +@property (nonatomic) PGPMPI *y; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPLiteralPacket.h b/ObjectivePGP.framework/Headers/PGPLiteralPacket.h new file mode 100644 index 00000000..df904b66 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPLiteralPacket.h @@ -0,0 +1,29 @@ +// +// PGPLiteralPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 24/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPExportableProtocol.h" +#import "PGPPacket.h" + +NS_ASSUME_NONNULL_BEGIN + +typedef NS_ENUM(UInt8, PGPLiteralPacketFormat) { PGPLiteralPacketBinary = 'b', PGPLiteralPacketText = 't', PGPLiteralPacketTextUTF8 = 'u' }; + +@interface PGPLiteralPacket : PGPPacket <PGPExportable> + +@property (nonatomic) PGPLiteralPacketFormat format; +@property (nonatomic) NSDate *timestamp; +@property (nonatomic, nullable) NSString *filename; + +@property (nonatomic) NSData *literalRawData; + +- (instancetype)initWithData:(NSData *)rawData; ++ (PGPLiteralPacket *)literalPacket:(PGPLiteralPacketFormat)format withData:(NSData *)rawData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPLogging.h b/ObjectivePGP.framework/Headers/PGPLogging.h new file mode 100644 index 00000000..01124be8 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPLogging.h @@ -0,0 +1,33 @@ +// +// PGPLogging.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 14/05/2017. +// Copyright © 2017 Marcin Krzyżanowski. All rights reserved. +// + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +#define PGPLogMacro(_level, _tag, _message) NSLog(@"[%s] %@ %s/%tu %@", _tag, @(_level), __PRETTY_FUNCTION__, __LINE__, _message()) + +#ifdef DEBUG +#define PGPLogDebug(format, ...) \ + PGPLogMacro(0, "ObjectivePGP", (^{ \ + return [NSString stringWithFormat:(@"" format), ##__VA_ARGS__]; \ + })) +#else +#define PGPLogDebug(format, ...) +#endif + +#define PGPLogWarning(format, ...) \ + PGPLogMacro(1, "ObjectivePGP", (^{ \ + return [NSString stringWithFormat:(@"" format), ##__VA_ARGS__]; \ + })) +#define PGPLogError(format, ...) \ + PGPLogMacro(2, "ObjectivePGP", (^{ \ + return [NSString stringWithFormat:(@"" format), ##__VA_ARGS__]; \ + })) + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPMPI.h b/ObjectivePGP.framework/Headers/PGPMPI.h new file mode 100644 index 00000000..bc4d67bc --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPMPI.h @@ -0,0 +1,47 @@ +// +// OpenPGPMPI.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 04/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import <ObjectivePGP/PGPBigNum.h> +#import <ObjectivePGP/PGPMacros.h> +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +OBJC_EXTERN NSString * const PGPMPI_N; +OBJC_EXTERN NSString * const PGPMPI_E; +OBJC_EXTERN NSString * const PGPMPI_P; +OBJC_EXTERN NSString * const PGPMPI_G; +OBJC_EXTERN NSString * const PGPMPI_Q; +OBJC_EXTERN NSString * const PGPMPI_D; +OBJC_EXTERN NSString * const PGPMPI_U; +OBJC_EXTERN NSString * const PGPMPI_X; +OBJC_EXTERN NSString * const PGPMPI_R; +OBJC_EXTERN NSString * const PGPMPI_S; +OBJC_EXTERN NSString * const PGPMPI_Y; +OBJC_EXTERN NSString * const PGPMPI_M; + +@interface PGPMPI : NSObject <NSCopying> + +@property (nonatomic, copy, readonly) NSString *identifier; +@property (nonatomic, readonly) PGPBigNum *bigNum; +/** + * Total bytes, header + body + */ +@property (nonatomic, readonly) NSUInteger packetLength; + +PGP_EMPTY_INIT_UNAVAILABLE; + +- (instancetype)initWithData:(NSData *)dataToMPI identifier:(NSString *)identifier NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithBigNum:(PGPBigNum *)bigNum identifier:(NSString *)identifier; +- (instancetype)initWithMPIData:(NSData *)mpiData identifier:(NSString *)identifier atPosition:(NSUInteger)position; +- (nullable NSData *)exportMPI; +- (nullable NSData *)bodyData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPModificationDetectionCodePacket.h b/ObjectivePGP.framework/Headers/PGPModificationDetectionCodePacket.h new file mode 100644 index 00000000..b075bbc8 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPModificationDetectionCodePacket.h @@ -0,0 +1,16 @@ +// +// PGPModificationDetectionCodePacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 12/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPacket.h" + +@interface PGPModificationDetectionCodePacket : PGPPacket +@property (nonatomic, readonly) NSData *hashData; + +- (instancetype)initWithData:(NSData *)data; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPOnePassSignaturePacket.h b/ObjectivePGP.framework/Headers/PGPOnePassSignaturePacket.h new file mode 100644 index 00000000..cbbb2a92 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPOnePassSignaturePacket.h @@ -0,0 +1,27 @@ +// +// PGPOnePassSignaturePacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 29/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPacket.h" +#import "PGPExportableProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class PGPKeyID; + +@interface PGPOnePassSignaturePacket : PGPPacket <PGPExportable> + +@property (nonatomic) UInt8 version; // The current version is 3. +@property (nonatomic) PGPSignatureType signatureType; +@property (nonatomic) PGPHashAlgorithm hashAlgorith; +@property (nonatomic) PGPPublicKeyAlgorithm publicKeyAlgorithm; +@property (nonatomic) PGPKeyID *keyID; // 8 +@property (nonatomic) BOOL notNested; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPPKCSEme.h b/ObjectivePGP.framework/Headers/PGPPKCSEme.h new file mode 100644 index 00000000..e727f9e4 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPPKCSEme.h @@ -0,0 +1,16 @@ +// +// PGPPKCSEme.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 06/06/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import <Foundation/Foundation.h> + +@interface PGPPKCSEme : NSObject + ++ (NSData *)encodeMessage:(NSData *)m keyModulusLength:(NSUInteger)k error:(NSError *__autoreleasing *)error; ++ (NSData *)decodeMessage:(NSData *)m error:(NSError *__autoreleasing *)error; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPPKCSEmsa.h b/ObjectivePGP.framework/Headers/PGPPKCSEmsa.h new file mode 100644 index 00000000..95fa8ea9 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPPKCSEmsa.h @@ -0,0 +1,16 @@ +// +// PGPPKCS.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 22/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPTypes.h" +#import <Foundation/Foundation.h> + +@interface PGPPKCSEmsa : NSObject + ++ (NSData *)encode:(PGPHashAlgorithm)hashAlgorithm message:(NSData *)m encodedMessageLength:(NSUInteger)emLen error:(NSError *__autoreleasing *)error; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPPacket.h b/ObjectivePGP.framework/Headers/PGPPacket.h new file mode 100644 index 00000000..a4a7d0d8 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPPacket.h @@ -0,0 +1,32 @@ +// +// PGPPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 06/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPExportableProtocol.h" +#import "PGPPacketProtocol.h" +#import "PGPTypes.h" +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +extern const UInt32 PGPUnknownLength; + +@interface PGPPacket : NSObject <PGPPacketProtocol, NSCopying, PGPExportable> +@property (nonatomic) BOOL indeterminateLength; // should not be used, but gpg use it + +- (instancetype)init NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithHeader:(NSData *)headerData body:(NSData *)bodyData; + ++ (nullable NSData *)parsePacketHeader:(NSData *)data headerLength:(UInt32 *)headerLength nextPacketOffset:(nullable NSUInteger *)nextPacketOffset packetTag:(PGPPacketTag *)tag indeterminateLength:(BOOL *)indeterminateLength; +- (NSUInteger)parsePacketBody:(NSData *)packetBody error:(NSError *__autoreleasing *)error; + ++ (NSData *)buildPacketOfType:(PGPPacketTag)tag withBody:(PGP_NOESCAPE NSData *(^)(void))body; + + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPPacketFactory.h b/ObjectivePGP.framework/Headers/PGPPacketFactory.h new file mode 100644 index 00000000..15f3c746 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPPacketFactory.h @@ -0,0 +1,21 @@ +// +// PGPPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 04/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPacket.h" +#import "PGPTypes.h" +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface PGPPacketFactory : NSObject + ++ (nullable PGPPacket *)packetWithData:(NSData *)packetsData offset:(NSUInteger)offset nextPacketOffset:(nullable NSUInteger *)nextPacketOffset; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPPacketProtocol.h b/ObjectivePGP.framework/Headers/PGPPacketProtocol.h new file mode 100644 index 00000000..3f5000cf --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPPacketProtocol.h @@ -0,0 +1,16 @@ +// +// PGPPacketProtocol.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 24/08/2017. +// Copyright © 2017 Marcin Krzyżanowski. All rights reserved. +// + +#import <Foundation/Foundation.h> +#import "PGPTypes.h" + +@protocol PGPPacketProtocol <NSObject> + +@property (nonatomic, readonly) PGPPacketTag tag; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPPublicKeyEncryptedSessionKeyPacket.h b/ObjectivePGP.framework/Headers/PGPPublicKeyEncryptedSessionKeyPacket.h new file mode 100644 index 00000000..3e3575b2 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPPublicKeyEncryptedSessionKeyPacket.h @@ -0,0 +1,27 @@ +// +// PGPPublicKeyEncryptedSessionKeyPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 06/06/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPacket.h" +#import "PGPExportableProtocol.h" + +NS_ASSUME_NONNULL_BEGIN + +@class PGPKeyID, PGPPublicKeyPacket, PGPSecretKeyPacket; + +@interface PGPPublicKeyEncryptedSessionKeyPacket : PGPPacket <NSCopying, PGPExportable> +@property (nonatomic) UInt8 version; +@property (nonatomic) PGPKeyID *keyID; +@property (nonatomic) PGPPublicKeyAlgorithm publicKeyAlgorithm; +@property (nonatomic, getter=isEncrypted) BOOL encrypted; + +- (BOOL)encrypt:(PGPPublicKeyPacket *)publicKeyPacket sessionKeyData:(NSData *)sessionKeyData sessionKeyAlgorithm:(PGPSymmetricAlgorithm)sessionKeyAlgorithm error:(NSError *__autoreleasing *)error; +- (nullable NSData *)decryptSessionKeyData:(PGPSecretKeyPacket *)secretKeyPacket sessionKeyAlgorithm:(PGPSymmetricAlgorithm *)sessionKeyAlgorithm error:(NSError *__autoreleasing *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPPublicKeyPacket.h b/ObjectivePGP.framework/Headers/PGPPublicKeyPacket.h new file mode 100644 index 00000000..ca94f638 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPPublicKeyPacket.h @@ -0,0 +1,41 @@ +// +// OpenPGPPublicKey.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 04/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// +// Tag 6 + +#import "PGPFingerprint.h" +#import "PGPKeyID.h" +#import "PGPPacketFactory.h" +#import "PGPTypes.h" +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@class PGPMPI; + +@interface PGPPublicKeyPacket : PGPPacket <NSCopying, PGPExportable> + +@property (nonatomic, readonly) UInt8 version; +@property (nonatomic, readonly) NSDate *createDate; +@property (nonatomic, readonly) UInt16 V3validityPeriod; // obsolete +@property (nonatomic, readonly) PGPPublicKeyAlgorithm publicKeyAlgorithm; +@property (nonatomic, copy, readonly) NSArray<PGPMPI *> *publicMPIArray; + +// generated properties +@property (nonatomic, readonly) NSUInteger keySize; +@property (nonatomic, readonly) PGPFingerprint *fingerprint; +@property (nonatomic, readonly) PGPKeyID *keyID; + +- (NSData *)exportKeyPacketOldStyle; +- (NSData *)buildKeyBodyData:(BOOL)forceV4; + +- (nullable PGPMPI *)publicMPI:(NSString *)identifier; +- (nullable NSData *)encryptData:(NSData *)data withPublicKeyAlgorithm:(PGPPublicKeyAlgorithm)publicKeyAlgorithm; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPPublicSubKeyPacket.h b/ObjectivePGP.framework/Headers/PGPPublicSubKeyPacket.h new file mode 100644 index 00000000..1c5cbad0 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPPublicSubKeyPacket.h @@ -0,0 +1,16 @@ +// +// PGPPublicSubKey.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 04/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// +// Tag 14 + +#import "PGPPacketFactory.h" +#import "PGPPublicKeyPacket.h" +#import <Foundation/Foundation.h> + +@interface PGPPublicSubKeyPacket : PGPPublicKeyPacket + +@end diff --git a/ObjectivePGP.framework/Headers/PGPS2K.h b/ObjectivePGP.framework/Headers/PGPS2K.h new file mode 100644 index 00000000..1311b080 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPS2K.h @@ -0,0 +1,36 @@ +// +// PGPS2K.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 07/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import <ObjectivePGP/PGPMacros.h> +#import <ObjectivePGP/PGPTypes.h> +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface PGPS2K : NSObject <NSCopying> + +@property (nonatomic, readonly) PGPS2KSpecifier specifier; +@property (nonatomic, readonly) PGPHashAlgorithm hashAlgorithm; +// random 8 bytes. +@property (nonatomic, copy, readonly) NSData *salt; +// Iteration count. +@property (nonatomic) UInt32 iterationsCount; + +PGP_EMPTY_INIT_UNAVAILABLE + +- (instancetype)initWithSpecifier:(PGPS2KSpecifier)specifier hashAlgorithm:(PGPHashAlgorithm)hashAlgorithm NS_DESIGNATED_INITIALIZER; + ++ (PGPS2K *)S2KFromData:(NSData *)data atPosition:(NSUInteger)position length:(nullable NSUInteger *)length; + +- (nullable NSData *)buildKeyDataForPassphrase:(NSData *)passphrase prefix:(nullable NSData *)prefix salt:(NSData *)salt codedCount:(UInt32)codedCount; +- (nullable NSData *)produceSessionKeyWithPassphrase:(NSString *)passphrase symmetricAlgorithm:(PGPSymmetricAlgorithm)symmetricAlgorithm; +- (nullable NSData *)export:(NSError *__autoreleasing *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPSecretKeyPacket.h b/ObjectivePGP.framework/Headers/PGPSecretKeyPacket.h new file mode 100644 index 00000000..b3564fb6 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPSecretKeyPacket.h @@ -0,0 +1,36 @@ +// +// PGPSecretKeyPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 07/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPublicKeyPacket.h" +#import "PGPS2K.h" + +NS_ASSUME_NONNULL_BEGIN + +@interface PGPSecretKeyPacket : PGPPublicKeyPacket <NSCopying, PGPExportable> + +@property (nonatomic, readonly) PGPS2KUsage s2kUsage; +@property (nonatomic, readonly) PGPS2K *s2k; +@property (nonatomic, readonly) PGPSymmetricAlgorithm symmetricAlgorithm; +@property (nonatomic, nullable, copy, readonly) NSData *ivData; +@property (nonatomic, getter=isEncryptedWithPassphrase, readonly) BOOL encryptedWithPassphrase; + +/** + * Decrypt packet + * + * @param passphrase Passphrase + * @param error error + * + * @return Decrypted key on success + */ +- (nullable PGPSecretKeyPacket *)decryptedKeyPacket:(NSString *)passphrase error:(NSError *__autoreleasing *)error; + +- (nullable PGPMPI *)secretMPI:(NSString *)identifier; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPSecretSubKeyPacket.h b/ObjectivePGP.framework/Headers/PGPSecretSubKeyPacket.h new file mode 100644 index 00000000..7e41b00e --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPSecretSubKeyPacket.h @@ -0,0 +1,13 @@ +// +// PGPSecretSubKeyPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 07/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPSecretKeyPacket.h" + +@interface PGPSecretSubKeyPacket : PGPSecretKeyPacket + +@end diff --git a/ObjectivePGP.framework/Headers/PGPSignaturePacket.h b/ObjectivePGP.framework/Headers/PGPSignaturePacket.h new file mode 100644 index 00000000..41baf987 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPSignaturePacket.h @@ -0,0 +1,73 @@ +// +// PGPSignature.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 04/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// +// Tag 2 + +#import "PGPKeyID.h" +#import "PGPMPI.h" +#import "PGPPacketFactory.h" +#import "PGPSignatureSubpacket.h" +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@class PGPPartialKey, PGPUser, PGPUserIDPacket, PGPPublicKeyPacket, PGPKey; + +@interface PGPSignaturePacket : PGPPacket <NSCopying> + +@property (nonatomic) UInt8 version; +@property (nonatomic) PGPSignatureType type; +@property (nonatomic) PGPPublicKeyAlgorithm publicKeyAlgorithm; +@property (nonatomic) PGPHashAlgorithm hashAlgoritm; +@property (nonatomic, copy, readonly) NSArray<PGPSignatureSubpacket *> *hashedSubpackets; +@property (nonatomic, copy, readonly) NSArray<PGPSignatureSubpacket *> *unhashedSubpackets; +/// Two-octet field holding the left 16 bits of the signed hash value. +/// Read from the key or set byt the call to `-[PGPSignaturePacket signData:usingKey:passphrase:userID:error]` +@property (nonatomic, nullable) NSData *signedHashValueData; +@property (nonatomic, copy) NSArray<PGPMPI *> *signatureMPIArray; + +@property (nonatomic, readonly) BOOL canBeUsedToSign; // computed +@property (nonatomic, readonly) BOOL canBeUsedToEncrypt; // computed + +@property (nonatomic, nullable, readonly) PGPKeyID *issuerKeyID; +@property (nonatomic, copy, readonly) NSArray<PGPSignatureSubpacket *> *subpackets; +@property (nonatomic, nullable, readonly) NSDate *expirationDate; // computed +@property (nonatomic, readonly, readonly, getter=isExpired) BOOL expired; // computed +@property (nonatomic, nullable, readonly) NSDate *creationDate; // computed +@property (nonatomic, readonly, readonly, getter=isPrimaryUserID) BOOL primaryUserID; // computed + +/** + * Create signature packet for signing. This is convienience constructor. + * + * @param type example: PGPSignatureBinaryDocument + * @param hashAlgorithm hash algorithm to be used for signature + * + * @return Packet instance ready to call signData:secretKey + */ ++ (PGPSignaturePacket *)signaturePacket:(PGPSignatureType)type hashAlgorithm:(PGPHashAlgorithm)hashAlgorithm; + +- (NSArray<PGPSignatureSubpacket *> *)subpacketsOfType:(PGPSignatureSubpacketType)type; +- (NSData *)calculateSignedHashForDataToSign:(NSData *)dataToSign; + +/** + * Build signature data (signature packet with subpackets). + * + * @param inputData Data to sign. + * @param withKey A key used to create signature. + * @param error error + * + * @return YES on success. + */ +- (BOOL)signData:(nullable NSData *)inputData withKey:(PGPKey *)key subKey:(nullable PGPKey *)subKey passphrase:(nullable NSString *)passphrase userID:(nullable NSString *)userID error:(NSError *__autoreleasing *)error; + +- (BOOL)verifyData:(NSData *)inputData withKey:(PGPKey *)publicKey error:(NSError *__autoreleasing *)error; +- (BOOL)verifyData:(NSData *)inputData withKey:(PGPKey *)publicKey userID:(nullable NSString *)userID error:(NSError *__autoreleasing *)error; +- (BOOL)verifyData:(NSData *)inputData withKey:(PGPKey *)publicKey signingKeyPacket:(PGPPublicKeyPacket *)signingKeyPacket userID:(nullable NSString *)userID error:(NSError *__autoreleasing *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPSignatureSubpacket.h b/ObjectivePGP.framework/Headers/PGPSignatureSubpacket.h new file mode 100644 index 00000000..56422193 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPSignatureSubpacket.h @@ -0,0 +1,35 @@ +// +// PGPSignatureSubPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 04/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import <ObjectivePGP/PGPTypes.h> +#import <ObjectivePGP/PGPMacros.h> +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@class PGPSignatureSubpacketHeader; + +@interface PGPSignatureSubpacket : NSObject + +@property (nonatomic, readonly) PGPSignatureSubpacketType type; +@property (nonatomic, readonly) id value; +@property (nonatomic, readonly) NSUInteger length; + +PGP_EMPTY_INIT_UNAVAILABLE; + +- (instancetype)initWithType:(PGPSignatureSubpacketType)type andValue:(id)value NS_DESIGNATED_INITIALIZER; +- (instancetype)initWithHeader:(PGPSignatureSubpacketHeader *)header body:(NSData *)subPacketBodyData; + ++ (PGPSignatureSubpacketHeader *)subpacketHeaderFromData:(NSData *)headerData; + +- (void)parseSubpacketBody:(NSData *)packetBody; +- (nullable NSData *)export:(NSError *__autoreleasing *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPSignatureSubpacketCreationTime.h b/ObjectivePGP.framework/Headers/PGPSignatureSubpacketCreationTime.h new file mode 100644 index 00000000..b5551cc2 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPSignatureSubpacketCreationTime.h @@ -0,0 +1,31 @@ +// +// PGPSignatureSubpacketCreationTime.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 10/07/2017. +// Copyright © 2017 Marcin Krzyżanowski. All rights reserved. +// +// 5.2.3.4. Signature Creation Time +// Signature Creation Time MUST be present in the hashed area. + +#import <ObjectivePGP/PGPTypes.h> +#import <ObjectivePGP/PGPMacros.h> +#import <ObjectivePGP/PGPExportableProtocol.h> +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface PGPSignatureSubpacketCreationTime : NSObject <PGPExportable> + +@property (nonatomic, copy, readonly) NSDate *value; +@property (class, nonatomic, readonly) PGPSignatureSubpacketType type; + +PGP_EMPTY_INIT_UNAVAILABLE + +- (instancetype)initWithDate:(NSDate *)date NS_DESIGNATED_INITIALIZER; + ++ (instancetype)packetWithData:(NSData *)packetBodyData; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPSignatureSubpacketHeader.h b/ObjectivePGP.framework/Headers/PGPSignatureSubpacketHeader.h new file mode 100644 index 00000000..8bbc3aab --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPSignatureSubpacketHeader.h @@ -0,0 +1,22 @@ +// +// PGPSignatureSubpacketHeader.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 10/07/2017. +// Copyright © 2017 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPTypes.h" +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface PGPSignatureSubpacketHeader : NSObject + +@property (nonatomic) PGPSignatureSubpacketType type; +@property (nonatomic) NSUInteger headerLength; +@property (nonatomic) NSUInteger bodyLength; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPSymmetricallyEncryptedDataPacket.h b/ObjectivePGP.framework/Headers/PGPSymmetricallyEncryptedDataPacket.h new file mode 100644 index 00000000..05faa6d2 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPSymmetricallyEncryptedDataPacket.h @@ -0,0 +1,14 @@ +// +// PGPSymmetricallyEncryptedDataPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 11/06/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPacket.h" + +@interface PGPSymmetricallyEncryptedDataPacket : PGPPacket +@property (nonatomic) NSData *encryptedData; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPSymmetricallyEncryptedIntegrityProtectedDataPacket.h b/ObjectivePGP.framework/Headers/PGPSymmetricallyEncryptedIntegrityProtectedDataPacket.h new file mode 100644 index 00000000..06a3687e --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPSymmetricallyEncryptedIntegrityProtectedDataPacket.h @@ -0,0 +1,25 @@ +// +// PGPSymmetricallyEncryptedDataPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 04/06/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPacket.h" +#import "PGPSymmetricallyEncryptedDataPacket.h" + +NS_ASSUME_NONNULL_BEGIN + +@class PGPSecretKeyPacket, PGPPublicKeyPacket; + +@interface PGPSymmetricallyEncryptedIntegrityProtectedDataPacket : PGPSymmetricallyEncryptedDataPacket + +@property (nonatomic) NSUInteger version; + +- (BOOL)encrypt:(NSData *)literalPacketData symmetricAlgorithm:(PGPSymmetricAlgorithm)sessionKeyAlgorithm sessionKeyData:(NSData *)sessionKeyData error:(NSError *__autoreleasing *)error; +- (NSArray<PGPPacket *> *)decryptWithSecretKeyPacket:(PGPSecretKeyPacket *)secretKeyPacket sessionKeyAlgorithm:(PGPSymmetricAlgorithm)sessionKeyAlgorithm sessionKeyData:(NSData *)sessionKeyData isIntegrityProtected:(BOOL *)isIntegrityProtected error:(NSError *__autoreleasing _Nullable *)error; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/Headers/PGPTrustPacket.h b/ObjectivePGP.framework/Headers/PGPTrustPacket.h new file mode 100644 index 00000000..78c2a014 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPTrustPacket.h @@ -0,0 +1,17 @@ +// +// PGPTrustPacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 06/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// +// Tag 12 + +#import "PGPPacketFactory.h" +#import <Foundation/Foundation.h> + +@interface PGPTrustPacket : PGPPacket + +@property (nonatomic, readonly) NSData *data; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPUserAttributePacket.h b/ObjectivePGP.framework/Headers/PGPUserAttributePacket.h new file mode 100644 index 00000000..7f86d1a5 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPUserAttributePacket.h @@ -0,0 +1,17 @@ +// +// PGPUserAttributePacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 24/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import "PGPPacket.h" +#import "PGPUserAttributeSubpacket.h" + +@interface PGPUserAttributePacket : PGPPacket + +// array of PGPUserAttributeSubpacket +@property (nonatomic) NSArray<PGPUserAttributeSubpacket *> *subpackets; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPUserAttributeSubpacket.h b/ObjectivePGP.framework/Headers/PGPUserAttributeSubpacket.h new file mode 100644 index 00000000..515b87d3 --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPUserAttributeSubpacket.h @@ -0,0 +1,18 @@ +// +// PGPUserAttributeSubpacket.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 24/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// + +#import <Foundation/Foundation.h> + +@interface PGPUserAttributeSubpacket : NSObject + +// Subpacket types 100 through 110 are reserved for private or experimental use. +@property (nonatomic) UInt8 type; +// Value +@property (nonatomic) NSData *valueData; + +@end diff --git a/ObjectivePGP.framework/Headers/PGPUserIDPacket.h b/ObjectivePGP.framework/Headers/PGPUserIDPacket.h new file mode 100644 index 00000000..ae4a0b4b --- /dev/null +++ b/ObjectivePGP.framework/Headers/PGPUserIDPacket.h @@ -0,0 +1,26 @@ +// +// PGPUserID.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 05/05/14. +// Copyright (c) 2014 Marcin Krzyżanowski. All rights reserved. +// +// Tag 13 + +#import <ObjectivePGP/PGPMacros.h> +#import <ObjectivePGP/PGPPacket.h> +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface PGPUserIDPacket : PGPPacket + +@property (nonatomic, copy, readonly) NSString *userID; + +PGP_EMPTY_INIT_UNAVAILABLE + +- (instancetype)initWithUserID:(NSString *)userID NS_DESIGNATED_INITIALIZER; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/PrivateHeaders/NSMutableArray+PGPUtils.h b/ObjectivePGP.framework/PrivateHeaders/NSMutableArray+PGPUtils.h new file mode 100644 index 00000000..05d583ef --- /dev/null +++ b/ObjectivePGP.framework/PrivateHeaders/NSMutableArray+PGPUtils.h @@ -0,0 +1,19 @@ +// +// NSMutableArray+PGPUtils.h +// ObjectivePGP +// +// Created by Marcin Krzyzanowski on 10/09/2017. +// Copyright © 2017 Marcin Krzyżanowski. All rights reserved. +// + +#import <Foundation/Foundation.h> + +NS_ASSUME_NONNULL_BEGIN + +@interface NSMutableArray <ObjectType> (PGPUtils) + +- (void)pgp_addObject:(nullable ObjectType)anObject; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ObjectivePGP.framework/strip-frameworks.sh b/ObjectivePGP.framework/strip-frameworks.sh new file mode 100644 index 00000000..6aaa926b --- /dev/null +++ b/ObjectivePGP.framework/strip-frameworks.sh @@ -0,0 +1,54 @@ +# This script strips all non-valid architectures from dynamic libraries in +# the application's `Frameworks` directory. +# +# The following environment variables are required: +# +# BUILT_PRODUCTS_DIR +# FRAMEWORKS_FOLDER_PATH +# VALID_ARCHS +# EXPANDED_CODE_SIGN_IDENTITY + + +# Signs a framework with the provided identity +code_sign() { + # Use the current code_sign_identitiy + echo "Code Signing $1 with Identity ${EXPANDED_CODE_SIGN_IDENTITY_NAME}" + echo "/usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements $1" + /usr/bin/codesign --force --sign ${EXPANDED_CODE_SIGN_IDENTITY} --preserve-metadata=identifier,entitlements "$1" +} + +# Set working directory to product’s embedded frameworks +cd "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}" + +if [ "$ACTION" = "install" ]; then + echo "Copy .bcsymbolmap files to .xcarchive" + find . -name '*.bcsymbolmap' -type f -exec mv {} "${CONFIGURATION_BUILD_DIR}" \; +else + # Delete *.bcsymbolmap files from framework bundle unless archiving + find . -name '*.bcsymbolmap' -type f -exec rm -rf "{}" +\; +fi + +echo "Stripping frameworks" + +for file in $(find . -type f -perm +111); do + # Skip non-dynamic libraries + if ! [[ "$(file "$file")" == *"dynamically linked shared library"* ]]; then + continue + fi + # Get architectures for current file + archs="$(lipo -info "${file}" | rev | cut -d ':' -f1 | rev)" + stripped="" + for arch in $archs; do + if ! [[ "${VALID_ARCHS}" == *"$arch"* ]]; then + # Strip non-valid architectures in-place + lipo -remove "$arch" -output "$file" "$file" || exit 1 + stripped="$stripped $arch" + fi + done + if [[ "$stripped" != "" ]]; then + echo "Stripped $file of architectures:$stripped" + if [ "${CODE_SIGNING_REQUIRED}" == "YES" ]; then + code_sign "${file}" + fi + fi +done \ No newline at end of file diff --git a/enzevalos_iphone/PLists/enzevalos-Info.plist b/enzevalos_iphone/PLists/enzevalos-Info.plist index f3aae050..770c6385 100644 --- a/enzevalos_iphone/PLists/enzevalos-Info.plist +++ b/enzevalos_iphone/PLists/enzevalos-Info.plist @@ -17,7 +17,7 @@ <key>CFBundlePackageType</key> <string>APPL</string> <key>CFBundleShortVersionString</key> - <string>0.8.5</string> + <string>0.8.6</string> <key>CFBundleSignature</key> <string>????</string> <key>CFBundleURLTypes</key> @@ -32,7 +32,7 @@ </dict> </array> <key>CFBundleVersion</key> - <string>0.8.5</string> + <string>0.8.6</string> <key>LSRequiresIPhoneOS</key> <true/> <key>NSAppTransportSecurity</key> -- GitLab