1 // Copyright 2015-present 650 Industries. All rights reserved. 2 3 // swiftlint:disable identifier_name 4 5 import Foundation 6 7 internal enum CodeSigningError: Error { 8 case CertificateEncodingError 9 case CertificateDERDecodeError 10 case CertificateValidityError 11 case CertificateMissingPublicKeyError 12 case CertificateDigitalSignatureNotPresentError 13 case CertificateMissingCodeSigningError 14 case CertificateRootNotCA 15 case CertificateProjectInformationChainError 16 case KeyIdMismatchError 17 case SecurityFrameworkError 18 case CertificateEmptyError 19 case CertificateChainError 20 case CertificateRootNotSelfSigned 21 case SignatureHeaderMissing 22 case SignatureHeaderStructuredFieldParseError 23 case SignatureHeaderSigMissing 24 case SignatureHeaderSignatureEncodingError 25 case SignatureEncodingError 26 case AlgorithmParseError 27 case InvalidExpoProjectInformationExtensionValue 28 29 func message() -> String { 30 switch self { 31 case .CertificateEncodingError: 32 return "Code signing certificate could not be encoded in a lossless manner using utf8 encoding" 33 case .CertificateDERDecodeError: 34 return "Code signing certificate data not in DER format" 35 case .CertificateMissingPublicKeyError: 36 return "Code signing certificate missing public key" 37 case .CertificateValidityError: 38 return "Certificate not valid" 39 case .CertificateDigitalSignatureNotPresentError: 40 return "Certificate digital signature not present" 41 case .CertificateMissingCodeSigningError: 42 return "Certificate missing code signing extended key usage" 43 case .CertificateRootNotCA: 44 return "Root certificate subject must be a Certificate Authority" 45 case .CertificateProjectInformationChainError: 46 return "Expo project information must be a subset or equal of that of parent certificates" 47 case .KeyIdMismatchError: 48 return "Key with keyid from signature not found in client configuration" 49 case .SecurityFrameworkError: 50 return "Signature verification failed due to security framework error" 51 case .CertificateEmptyError: 52 return "No code signing certificates provided" 53 case .CertificateChainError: 54 return "Certificate chain error" 55 case .CertificateRootNotSelfSigned: 56 return "Root certificate not self-signed" 57 case .SignatureHeaderMissing: 58 return "No expo-signature header specified" 59 case .SignatureHeaderStructuredFieldParseError: 60 return "expo-signature structured header parsing failed" 61 case .SignatureHeaderSigMissing: 62 return "Structured field sig not found in expo-signature header" 63 case .SignatureHeaderSignatureEncodingError: 64 return "Signature in header has invalid encoding" 65 case .SignatureEncodingError: 66 return "Invalid signature encoding" 67 case .AlgorithmParseError: 68 return "Invalid algorithm" 69 case .InvalidExpoProjectInformationExtensionValue: 70 return "Invalid Expo project information extension value" 71 } 72 } 73 } 74