b0VIM 8.0������]<��ݖ��josh������������������������������������Joshs-MacBook-Pro.local�����������������~josh/Projects/fastlane/fastlane/spaceship/lib/spaceship/portal/certificate.rb�����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������utf-8 U3210����#"! U�������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������tp�����������m����������������������������c�������n��������������������������������������������������������������������������������U������������������������������D�������*���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������ad��&���������m����������������������������T��N����������y��b��J��I����� ��� ��� ��� ��� ��� ��V ��E ��2 �� �� �����������{��z��0����������������o��g��@��/�� ��� ��� ��� ��� ��� ��` ��G �� ��� ��� ��� ��� ��k ��Z ��C ��% ��$ ��������n��9�������������������L��*��)����������������o��K��'����������������b��7�����������s��r�������������l��k�������������z��y��%�������������������������������������������������� class MacDevelopment < Certificate; end� # A Mac development code signing certificate used for development environment�� class InHouse < Certificate; end� # An In House code signing certificate used for enterprise distributions�� class Production < Certificate; end� # A production code signing certificate used for distribution environment�� class Development < Certificate; end� # A development code signing certificate used for development environment�� class AppleDistribution < Certificate; end� # An Apple distribution code signing certificate used for distribution environment�� class AppleDevelopment < Certificate; end� # An Apple development code signing certificate used for development environment�� #####################################################� # Certs are not associated with apps� #####################################################�� })� 'canDownload' => :can_download� 'certificateTypeDisplayId' => :type_display_id,� 'ownerId' => :owner_id,� 'ownerName' => :owner_name,� 'ownerType' => :owner_type,� 'expirationDate' => :expires,� 'dateCreated' => :created,� 'statusString' => :status,� 'name' => :name,� 'certificateId' => :id,� attr_mapping({�� attr_accessor :can_download� # @return (Bool) Whether or not the certificate can be downloaded�� attr_accessor :type_display_id� # "5QPB9NHCEI"� # @example Development Certificate� # "R58UK2EWSO"� # @example Production Certificate� # @return (String) The type of the certificate� # the certificate. Available values listed in CERTIFICATE_TYPE_IDS� # which is automatically used to determine the class of� # Indicates the type of this certificate�� attr_accessor :owner_id� # "75B83SPLAA"� # @example� # fetch more information� # @return (String) The ID of the owner, that can be used to�� attr_accessor :owner_name� # "tools.fastlane.app"� # @example Push Certificate (the bundle identifier)� # "SunApps Gmbh"� # @example Code Signing Identity (usually the company name)� #� # @return (String) The name of the owner�� attr_accessor :owner_type� # "bundle"� # @example Push Certificate� # "team"� # @example Code Signing Identity� #� # or a code signing identity� # @return (String) The owner type that defines if it's a push profile�� attr_accessor :expires� # 2016-04-01 21:24:00 UTC� # @example� # @return (Date) The date and time when the certificate will expire�� attr_accessor :created� # 2015-04-01 21:24:00 UTC� # @example� # @return (Date) The date and time when the certificate was created�� attr_accessor :status� # "Issued"� # @example� # @return (String) Status of the certificate�� attr_accessor :name� # "Apple Push Services"� # @example Push Profile� # "SunApps GmbH"� # @example Company� # @return (String) The name of the certificate�� attr_accessor :id� # "P577TH3PAA"� # @example� # @return (String) The ID given from the developer portal. You'll probably not need it.� class Certificate < PortalBase� # This can either be a code signing identity or a push profile� #� # Represents a certificate from the Apple Developer Portal.� module Portal�module Spaceship��require_relative 'website_push'�require_relative 'app'��require 'openssl'�ad��d��������D����������s�������������3��)��� ��� ��\ ��. ��������������~��=�����������������C��B��� ��x ��9 ��� ��� ��� ��� ��f �� �� ��������������������a��J����������������a��W��V����������������i��V��/��%��$����������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������end� end� end� end� MAC_CERTIFICATE_TYPE_IDS.include?(type_display_id)� def mac?� # @return (Bool) Is this a Mac profile?�� end� self.kind_of?(PushCertificate)� def is_push?� # @return (Bool): Is this certificate a push profile for apps?�� end� client.revoke_certificate!(id, type_display_id, mac: mac?)� def revoke!� # Revoke the certificate. You shouldn't use this method probably.�� end� OpenSSL::X509::Certificate.new(download_raw)� def download� # @return (OpenSSL::X509::Certificate) Downloads and parses the certificate�� end� client.download_certificate(id, type_display_id, mac: mac?)� def download_raw� # @return (String) Download the raw data of the certificate without parsing�� # instance methods�� end� end� Spaceship::Portal::App� def portal_type� # @return (Class): The class this type of certificate belongs to� # Default portal class to use when finding by bundle_id�� end� self.new(response)� response['certificateTypeDisplayId'] = response['certificateType']['certificateTypeDisplayId']� # munge the response to make it work for the factory� response = client.create_certificate!(type, csr.to_pem, app_id, mac)� # if this succeeds, we need to save the .cer and the private key in keychain access or wherever they go in linux�� csr = OpenSSL::X509::Request.new(csr) if csr.kind_of?(String)� # ensure csr is a OpenSSL::X509::Request�� end� app_id = app.app_id� raise "Could not find app with bundle id '#{bundle_id}'" unless app� app = portal_type.set_client(client).find(bundle_id)� if bundle_id� # look up the app_id by the bundle_id�� mac = MAC_CERTIFICATE_TYPE_IDS.include?(type)� type = CERTIFICATE_TYPE_IDS.key(self)� def create!(csr: nil, bundle_id: nil)� # @return (Certificate): The newly created certificate� # Spaceship::Certificate::Production.create!(csr: csr)� # # Use the signing request to create a new distribution certificate� #� # csr, pkey = Spaceship::Certificate.create_certificate_signing_request� # # Create a new certificate signing request� # @example� # certificates, you must only pass a certificate signing request.� # This value is only needed if you create a push profile. For normal code signing� # @param bundle_id (String) (optional): The app identifier this certificate is for.� # `create_certificate_signing_request`�ad���������������������������T������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� #� # csr, pkey = Spaceship.certificate.create_certificate_signing_request� # Create a new certificate signing request� # @example� # generate a new certificate� # Create a new code signing request that can be used to�ad������������c����������������2�����������z��y��-��� ��� ��� ��� ��T ��S �� �����������V��#��"�����������w��M��0����� ��� ��� ��� ��� ��� ��e ��= ��< �� ��� ��� ��� ��� ��� ��H �� �� �����������o��E��������������������`��7����������������S��K��J��$��������������}��U��@��8��7�������������`��0����������������i��+��������������������������u��t��h��g��P��O��C��B��-��,�� ����������������fica� end�� def mac_app_distribution�� end�� def in_house�� end�� def production�� end�� def mac_development�� � def devevlopment� class << self� # Class methods�� .merge(MAC_CERTIFICATE_TYPE_IDS)� .merge(IOS_CERTIFICATE_TYPE_IDS)� CERTIFICATE_TYPE_IDS = APPLE_CERTIFICATE_TYPE_IDS�� }� "DIVN2GW3XT" => DeveloperIdApplication� "HQ4KP3I34R" => MacDevelopmentPush,� "CDZ7EMXIZ1" => MacProductionPush,� "W0EURJRMC5" => DeveloperIdApplication,� "OYVN2GW35E" => DeveloperIdInstaller,� "2PQI8IDXNH" => MacInstallerDistribution,� "HXZEUKP0FP" => MacAppDistribution,� "749Y1QAGU7" => MacDevelopment,� MAC_CERTIFICATE_TYPE_IDS = {�� ]� "FUOY7LWJET"� "3BQKVH9I2X", # ProductionPush,� "S5WE21TULA",� "FGQUP4785Z",� "DZQUP8189Y",� "T44PTHVNID",� # those are also sent by the browser, but not sure what they represent� OLDER_IOS_CERTIFICATE_TYPES = [�� }� "MD8Q2VRT6A" => ApplePayMerchantIdentity� "4APLUP237T" => ApplePay,� "E5D663CMZW" => VoipPush,� "3T2ZP62QW8" => WebsitePush,� "Y3B2F3TYSI" => Passbook,� "UPV3DW712I" => ProductionPush,� "BKLRAVXMGM" => DevelopmentPush,� "LA30L5BJEU" => Certificate,� "9RQEK7MSXA" => InHouse,� "R58UK2EWSO" => Production,� "5QPB9NHCEI" => Development,� IOS_CERTIFICATE_TYPE_IDS = {�� }� "WXV89964HE" => AppleDistribution� "83Q87W3TGH" => AppleDevelopment,� APPLE_CERTIFICATE_TYPE_IDS = {�� class MacProductionPush < PushCertificate; end� # A Mac push notification certificate for production environment�� class MacDevelopmentPush < PushCertificate; end� # A Mac push notification certificate for development environment�� class ApplePayMerchantIdentity < Certificate; end� # ApplePayMerchantIdentity certificate�� class ApplePay < Certificate; end� # ApplePay certificate�� class Passbook < Certificate; end� # Passbook certificate�� class VoipPush < PushCertificate; end� # A push notification certificate for the VOIP environment�� end� end� Spaceship::Portal::WebsitePush� def self.portal_type� class WebsitePush < PushCertificate� # A push notification certificate for websites�� class ProductionPush < PushCertificate; end� # A push notification certificate for production environment�� class DevelopmentPush < PushCertificate; end� # A push notification certificate for development environment�� class PushCertificate < Certificate; end� # DevelopmentPush, ProductionPush, WebsitePush and VoipPush� # Abstract class for push certificates. Check out the subclasses�� #####################################################� # Certs that are specific for one app� #####################################################�� class DeveloperIdInstaller < Certificate; end� # A Mac Developer ID signing certificate for building .pkg installers�� class DeveloperIdApplication < Certificate; end� # A Mac Developer ID signing certificate for building .app bundles�� class MacInstallerDistribution < Certificate; end� # A Mac production code signing certificate for building .pkg installers�� class MacAppDistribution < Certificate; end� # A Mac production code signing certificate for building .app bundles�ad�����R������������������������������������������������������`��_��S��R������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������� end�� def mac_app_distribution�� end�� def in_house�� end�� def production�� end�� def mac_development�� end�