IssacPFX

Objective-C

@interface IssacPFX : NSObject

Swift

class IssacPFX : NSObject

PFX (PKCS#12) 관련 기능

  • PFX를 읽어들인다. (PKCS#12)

    Declaration

    Objective-C

    - (BOOL)read:(nonnull NSData *)data pin:(nonnull NSString *)pin;

    Swift

    func read(_ data: Data, pin: String) -> Bool

    Parameters

    data

    PFX

    pin

    PFX 비밀번호

  • PBE (Password Based Encryption) 를 사용하여 PFX를 생성한다.

    Declaration

    Objective-C

    - (nullable NSData *)writeWithPin:(nonnull NSString *)pin
                              hashAlg:(HashAlg)hashAlg
                              symmAlg:(SymmAlg)symmAlg
                                 salt:(nullable NSData *)salt
                            iteration:(int)iteration;

    Swift

    func write(withPin pin: String, hashAlg: HashAlg, symmAlg: SymmAlg, salt: Data?, iteration: Int32) -> Data?

    Parameters

    pin

    PFX 비밀번호

    hashAlg

    해시 알고리즘 (현재는 SHA1 만 사용 가능)

    symmAlg

    대칭키 알고리즘

    salt

    salt 값

    iteration

    해시 반복 회수

  • 인증서만 추가한다.

    Declaration

    Objective-C

    - (BOOL)addCert:(nonnull IssacCERTIFICATE *)cert;

    Swift

    func addCert(_ cert: IssacCERTIFICATE) -> Bool

    Parameters

    cert

    추가할 인증서

  • 인증서 목록을 한번에 추가한다.

    Declaration

    Objective-C

    - (BOOL)addCerts:(nonnull IssacCERTIFICATES *)certs;

    Swift

    func addCerts(_ certs: IssacCERTIFICATES) -> Bool

    Parameters

    certs

    추가할 인증서 목록

  • 키쌍이 일치하는 인증서와 개인키를 추가한다.

    Declaration

    Objective-C

    - (BOOL)addCert:(nonnull IssacCERTIFICATE *)cert pki:(nonnull NSData *)pki;

    Swift

    func addCert(_ cert: IssacCERTIFICATE, pki: Data) -> Bool

    Parameters

    cert

    추가할 인증서

    pki

    추가할 개인키 (암호화되지 않은 PKCS#8 개인키)

  • 키쌍이 일치하는 인증서와 개인키를 추가한다.

    Declaration

    Objective-C

    - (BOOL)addCert:(nonnull IssacCERTIFICATE *)cert epki:(nonnull NSData *)epki;

    Swift

    func addCert(_ cert: IssacCERTIFICATE, epki: Data) -> Bool

    Parameters

    cert

    추가할 인증서

    epki

    추가할 개인키 (암호화 된 PKCS#8 개인키)

  • 키쌍이 일치하는 인증서와 개인키를 추가한다.

    Declaration

    Objective-C

    - (BOOL)addCert:(nonnull IssacCERTIFICATE *)cert
             priKey:(nonnull IssacPRIVATEKEY *)priKey;

    Swift

    func addCert(_ cert: IssacCERTIFICATE, priKey: IssacPRIVATEKEY) -> Bool

    Parameters

    cert

    추가할 인증서

    priKey

    추가할 개인키

  • 키쌍이 일치하는 인증서와 개인키를 추가한다. (개인키의 경우 PBE 로 암호화한다)

    Declaration

    Objective-C

    - (BOOL)addCert:(nonnull IssacCERTIFICATE *)cert
             priKey:(nonnull IssacPRIVATEKEY *)priKey
                pin:(nonnull NSString *)pin
            symmAlg:(SymmAlg)symmAlg
               salt:(nullable NSData *)salt
          iteration:(int)iteration;

    Swift

    func addCert(_ cert: IssacCERTIFICATE, priKey: IssacPRIVATEKEY, pin: String, symmAlg: SymmAlg, salt: Data?, iteration: Int32) -> Bool

    Parameters

    cert

    추가할 인증서

    priKey

    추가할 개인키 (PBE 암호화)

    pin

    개인키 암호화에 사용할 비밀번호

    symmAlg

    대칭키 알고리즘

    salt

    salt 값

    iteration

    해시 반복 회수

  • 서명용 인증서를 가져온다.

    Declaration

    Objective-C

    - (nullable IssacCERTIFICATE *)getSignCert;

    Swift

    func getSignCert() -> IssacCERTIFICATE?
  • 서명용 개인키를 가져온다. (암호화되지 않은 개인키가 포함된 경우)

    Declaration

    Objective-C

    - (nullable IssacPRIVATEKEY *)getSignPriKey;

    Swift

    func getSignPriKey() -> IssacPRIVATEKEY?
  • 서명용 개인키를 가져온다. (암호화 된 개인키가 포함된 경우)

    Declaration

    Objective-C

    - (nullable IssacPRIVATEKEY *)getSignPriKey:(nonnull NSString *)priKeyPassword;

    Swift

    func getSignPriKey(_ priKeyPassword: String) -> IssacPRIVATEKEY?

    Parameters

    priKeyPassword

    암호화 된 개인키의 비밀번호

  • 서명용 개인키를 가져온다. (암호화 된 개인키가 포함된 경우)

    Declaration

    Objective-C

    - (nullable IssacPRIVATEKEY *)getSignPriKeyWithPasswordData:
        (nonnull NSData *)priKeyPassword;

    Swift

    func getSignPriKey(withPasswordData priKeyPassword: Data) -> IssacPRIVATEKEY?

    Parameters

    priKeyPassword

    암호화 된 개인키의 비밀번호

  • 서명용 인증서를 데이터 형식으로 그대로 가져온다.

    Declaration

    Objective-C

    - (nullable NSData *)getSignCertData;

    Swift

    func getSignCertData() -> Data?
  • 암호화되지 않은 서명용 개인키를 데이터 형식으로 그대로 가져온다.

    Declaration

    Objective-C

    - (nullable NSMutableData *)getSignPKI;

    Swift

    func getSignPKI() -> NSMutableData?
  • 암호화 된 서명용 개인키를 데이터 형식으로 그대로 가져온다.

    Declaration

    Objective-C

    - (nullable NSData *)getSignEPKI;

    Swift

    func getSignEPKI() -> Data?
  • 키분배용 인증서를 가져온다.

    Declaration

    Objective-C

    - (nullable IssacCERTIFICATE *)getKmCert;

    Swift

    func getKmCert() -> IssacCERTIFICATE?
  • 키분배용 개인키를 가져온다. (암호화되지 않은 개인키가 포함된 경우)

    Declaration

    Objective-C

    - (nullable IssacPRIVATEKEY *)getKmPriKey;

    Swift

    func getKmPriKey() -> IssacPRIVATEKEY?
  • 키분배용 개인키를 가져온다. (암호화 된 개인키가 포함된 경우)

    Declaration

    Objective-C

    - (nullable IssacPRIVATEKEY *)getKmPriKey:(nonnull NSString *)priKeyPassword;

    Swift

    func getKmPriKey(_ priKeyPassword: String) -> IssacPRIVATEKEY?

    Parameters

    priKeyPassword

    암호화 된 개인키의 비밀번호

  • 키분배용 개인키를 가져온다. (암호화 된 개인키가 포함된 경우)

    Declaration

    Objective-C

    - (nullable IssacPRIVATEKEY *)getKmPriKeyWithPasswordData:
        (nonnull NSData *)priKeyPassword;

    Swift

    func getKmPriKey(withPasswordData priKeyPassword: Data) -> IssacPRIVATEKEY?

    Parameters

    priKeyPassword

    암호화 된 개인키의 비밀번호

  • 키분배용 인증서를 데이터 형식으로 그대로 가져온다.

    Declaration

    Objective-C

    - (nullable NSData *)getKmCertData;

    Swift

    func getKmCertData() -> Data?
  • 암호화되지 않은 키분배용 개인키를 데이터 형식으로 그대로 가져온다.

    Declaration

    Objective-C

    - (nullable NSMutableData *)getKmPKI;

    Swift

    func getKmPKI() -> NSMutableData?
  • 암호화 된 키분배용 개인키를 데이터 형식으로 그대로 가져온다.

    Declaration

    Objective-C

    - (nullable NSData *)getKmEPKI;

    Swift

    func getKmEPKI() -> Data?
  • localKeyID 목록을 가져온다. (키쌍 구분을 위한 ID)

    Declaration

    Objective-C

    - (nonnull NSArray *)getLocalKeyIDs;

    Swift

    func getLocalKeyIDs() -> [Any]
  • localKeyID 에 해당하는 인증서를 가져온다.

    Declaration

    Objective-C

    - (nullable IssacCERTIFICATE *)getCertificate:(nonnull NSData *)localKeyID;

    Swift

    func getCertificate(_ localKeyID: Data) -> IssacCERTIFICATE?

    Parameters

    localKeyID

    키쌍 구분을 위한 ID

  • localKeyID 에 해당하는 개인키를 가져온다.

    Declaration

    Objective-C

    - (nullable IssacPRIVATEKEY *)getPrivateKey:(nonnull NSData *)localKeyID
                                       password:(nonnull NSString *)password;

    Swift

    func getPrivateKey(_ localKeyID: Data, password: String) -> IssacPRIVATEKEY?

    Parameters

    localKeyID

    키쌍 구분을 위한 ID

    password

    개인키 비밀번호 (암호화되지 않았다면 nil)

  • localKeyID 를 가지지 않는 인증서 목록을 가져온다. (일반적으로 인증서 체인 같은 것에 활용됨)

    Declaration

    Objective-C

    - (nullable IssacCERTIFICATES *)getOtherCertificates;

    Swift

    func getOtherCertificates() -> IssacCERTIFICATES?
  • localKeyID 를 가지지 않는 인증서 목록을 가져온다. (일반적으로 인증서 체인 같은 것에 활용됨)

    Declaration

    Objective-C

    - (nonnull NSArray *)getOtherCertificatesArray;

    Swift

    func getOtherCertificatesArray() -> [Any]
  • 입력한 bagType 에 해당하는 데이터를 가져온다.

    Declaration

    Objective-C

    - (nullable NSData *)getValue:(int)index;

    Swift

    func getValue(_ index: Int32) -> Data?

    Parameters

    index

    Bag 인덱스

  • 입력한 bagType, localKeyID 에 해당하는 데이터를 가져온다.

    Declaration

    Objective-C

    - (nullable NSMutableData *)getValueWithBagType:(BagType)bagType
                                         localKeyID:(nullable NSData *)localKeyID;

    Swift

    func getValueWith(_ bagType: BagType, localKeyID: Data?) -> NSMutableData?

    Parameters

    bagType

    PKCS#10 Bag 의 종류

    localKeyID

    키쌍 구분을 위한 ID (키쌍이 있는 데이터일 경우 입력)

  • SafeBag 이 존재하는지 확인한다.

    Declaration

    Objective-C

    - (BOOL)hasBag:(BagType)bagType;

    Swift

    func hasBag(_ bagType: BagType) -> Bool

    Parameters

    bagType

    PKCS#10 Bag 의 종류

  • SafeBag 이 존재하는지 확인한다.

    Declaration

    Objective-C

    - (BOOL)hasBag:(BagType)bagType localKeyID:(nullable NSData *)localKeyID;

    Swift

    func hasBag(_ bagType: BagType, localKeyID: Data?) -> Bool

    Parameters

    bagType

    PKCS#10 Bag 의 종류

    localKeyID

    키쌍 구분을 위한 ID (키쌍이 있는 데이터일 경우 입력)