IssacKA

Objective-C

@interface IssacKA : NSObject

Swift

class IssacKA : NSObject

키 합의 (키 분배) 관련 기능

  • 키합의 타입을 지정하여 초기화한다.

    Declaration

    Objective-C

    - (id _Nonnull)initWithKeyAgreementType:(KeyAgreementType)keyAgreementType;

    Swift

    init(keyAgreementType: KeyAgreementType)

    Parameters

    keyAgreementType

    키합의 타입

  • 자신의 세션정보를 초기화하고, 상대방에게 전달할 세션정보를 생성한다.

    Declaration

    Objective-C

    - (nullable NSData *)initializeKeyAgreement;

    Swift

    func initializeKeyAgreement() -> Data?
  • 상대방의 세션정보를 조합하여 키합의를 마무리한다.

    Declaration

    Objective-C

    - (BOOL)finalizeKeyAgreement:(nonnull NSData *)sessionInfo;

    Swift

    func finalizeKeyAgreement(_ sessionInfo: Data) -> Bool

    Parameters

    sessionInfo

    상대방의 세션정보

  • ECDH 에 사용할 커브를 설정한다. (호출하지 않으면 P256)

    Declaration

    Objective-C

    - (BOOL)setCurve:(EcCurve)ecCurve;

    Swift

    func setCurve(_ ecCurve: EcCurve) -> Bool

    Parameters

    ecCurve

    EC Curve 종류

  • 키유도 함수에 필요한 해시 알고리즘을 설정한다. (호출하지 않으면 SHA256)

    Declaration

    Objective-C

    - (BOOL)setKdf:(HashAlg)hashAlg;

    Swift

    func setKdf(_ hashAlg: HashAlg) -> Bool

    Parameters

    hashAlg

    해시 알고리즘

  • 키합의가 완료된 KACONTEXT 를 통해 세션키를 생성한다.

    Declaration

    Objective-C

    - (nullable NSData *)getSessionKey:(int)keyLen;

    Swift

    func getSessionKey(_ keyLen: Int32) -> Data?

    Parameters

    keyLen

    생성할 키의 길이