KMFCryptoOperation - 범위가 지정됨, 전역
KMFCryptoOperation 클래스는 (KMF) 암호화 모듈 또는 열 수준 암호화 (CLE) 암호화 모듈을 사용하여 핵심 관리 프레임워크 암호화 작업을 수행하는 메서드를 제공합니다.
이 API를 사용하려면 KMF 암호화 모듈 또는 CLE 암호화 모듈을 이미 생성하고 구성해야 합니다. 모듈에는 하나 이상의 암호화 사양이 있어야 하며 연결된 키를 만들거나 가져와야 합니다. 자세한 내용은 암호화 모듈을 참조하십시오.
이 API를 사용하여 생성된 KMFCryptoOperation 개체는 대칭 암호화와 같은 암호화 작업을 나타냅니다. KMFCryptoOperations() 메서드를 사용하여 이 객체를 만들고, 빌더 메서드를 사용하여 객체의 속성을 설정하고, doOperation() 메서드를 사용하여 작업을 실행합니다.
이 API는 범위가 지정된 애플리케이션과 전역 애플리케이션 모두에서 사용할 수 있습니다. 이 API를 호출할 때는 항상 sn_kmf_ns 네임스페이스를 지정해야 합니다.
KMFCryptoOperation - KMFCryptoOperation(문자열 cryptoModuleName, 문자열 operationName)
지정된 모듈 및 작업에 대한 KMFCryptoOperation 개체를 만듭니다.
이 API는 빌더 메서드를 활용합니다. 작성기 메서드는 원하는 데이터 출력 형식 변경과 같은 KMFCryptoOperation 개체의 속성을 업데이트합니다. 모든 빌더 메서드가 모든 작업에 유효한 것은 아닙니다. 각 작업에 사용할 수 있는 빌더 메서드는 아래 매개변수 테이블에 나와 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| cryptoModuleName입니다 | 문자열 | 사용할 키 관리 프레임워크(KMF) 암호화 모듈 또는 열 수준 암호화(CLE) 암호화 모듈의 이름입니다. 이 메서드를 호출하기 전에 모듈을 만들어야 합니다. 자세한 내용은 암호화 모듈 개요를 참조하십시오. |
| operationName | 문자열 | 수행할 작업의 이름입니다. 유효한 값(대소문자 구분 안 함):
|
이 예제에서는 모듈 global.sj_cm에 대한 KMFCryptoOperation 개체를 인스턴스화하여 대칭 암호화 작업을 수행합니다. 전역 및 범위가 지정된 애플리케이션 모두에 대한 네임스페이스를 포함해야 합니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION");
이 예제에서는 디폴트 출력 유형과 출력 형식을 업데이트하는 옵션을 지정하는 방법을 보여줍니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION")
.withOutputType("STRING").withOutputFormat("FORMATTED");
var cipherText=op.doOperation("hi");
이 예에서는 EC-IES(Integrated Encryption Scheme)를 사용하여 비대칭 암호화 작업을 수행하는 방법을 보여줍니다. 긴 값(예 signature: )은 잘리고 가독성을 위해 줄임표로 대체되었습니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_ENCRYPTION")
.withInputFormat("KMFNONE")
.withOutputType("PAYLOAD");
var cipherText = op.doOperation("hi");
/*
cipherText contains an object similar to this JSON: {
"signature": "pkg…",
"ephemeral_key": "BDi…",
"ciphertext": "afFS…"
}
*/
이 예에서는 EC-IES를 사용하여 비대칭 암호 해독 작업을 수행하는 방법을 보여줍니다.
var op = new
sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_DECRYPTION")
.withAdditionalInput({
"signature": "pkg… ",
"ephemeral_key": "BDi…"
})
.withOutputFormat("KMFNONE");
var clearText = op.doOperation("afFS…");
KMFCryptoOperation - doOperation(객체 데이터)
제공된 데이터에 대해 현재 KMFCryptoOperation 개체에 정의된 암호화 작업을 수행하고 결과를 반환합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 데이터 | 객체 | withSysId() 빌더 메서드가 연결된 KMFCryptoOperation 객체에서 이전에 호출된 적이 있는 경우를 제외하고는 필수입니다. 암호화 작업을 수행할 입력 데이터입니다. |
| 유형 | 설명 |
|---|---|
운영 유형에 따라 다릅니다.
|
연결된 KMFCryptoOperation 개체에 지정된 작업을 수행한 후의 데이터 결과입니다. |
이 예제에서는 doOperation() 을 사용하여 MAC을 만듭니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","MAC_GENERATION");
var data = "aGk=";
var mac = op.doOperation(data);
KMFCryptoOperation - withAdditionalInput(Object additionalInput)
암호화 작업을 수행하는 데 필요한 추가 입력을 설정합니다.
예를 들어 MAC(메시지 인증 코드) 확인 중에 이 방법을 사용하여 생성된 MAC 태그를 전달합니다. 마찬가지로 서명 확인 중에 이를 사용하여 서명을 전달합니다. 또한 EC-IES(Elliptic Curve Integrated Encryption Scheme)와 같은 통합 암호로 비대칭 작업을 수행할 때 이 메서드를 사용하여 추가 데이터인 KMFEncryptionPayload 오브젝트를 전달할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| additionalInput | 문자열 또는 객체 | EC-IES를 사용할 때 비대칭 암호 해독 작업을 제외한 선택 사항입니다. KMFCryptoOperation 개체에 지정된 암호화 작업을 수행하는 데 필요한 추가 입력 데이터입니다. 지원되는 문자열 형식:
KMFEncryptionPayload 오브젝트 형식: |
| additionalInput.ciphertext (추가입력.암호) | 문자열(Base64) | 비대칭 암호 해독에 필요하며 다른 모든 작업에는 선택 사항입니다. 유효한 값은 다음과 같습니다.
출력 유형이 로 설정된 경우 비대칭 암호화 작업에서 사용할 수 있습니다 payload. |
| additionalInput.derivation_secret | 문자열(Base64) | 선택 사항으로, EC-IES를 사용한 비대칭 암호화 또는 비대칭 암호 해독 작업에만 사용됩니다. 통합 스키마의 키 파생 프로세스 중에 사용할 공유 암호입니다. |
| additionalInput.ephemeral_key | 문자열(Base64) | EC-IES를 사용하는 경우 비대칭 암호 해독 작업에 필요하며 다른 모든 작업에 대해서는 선택 사항입니다. 통합 체계의 기본 동의 프로세스 중에 사용할 임시 공개 키입니다. 출력 유형이 로 설정된 경우 비대칭 암호화 작업에서 사용할 수 있습니다 payload. |
| additionalInput.ephemeral_key_format | 문자열 | 선택 사항으로, EC-IES를 사용한 비대칭 암호화 또는 비대칭 암호 해독 작업에만 사용됩니다. 매개변수로 표현되는 공개 키의 형식을 재정의합니다 ephemeral_key . 유효한 값은 다음과 같습니다.
|
| additional입력.서명 | 문자열(Base64) | EC-IES를 사용한 비대칭 암호 해독 작업에 필요하며 다른 모든 작업에 대해서는 선택 사항입니다. 통합 체계의 서명 검증 프로세스를 사용하여 확인할 암호문의 서명입니다. 출력 유형이 로 설정된 경우 비대칭 암호화 작업에서 사용할 수 있습니다 payload. |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예제에서는 withAdditionalInput() 을 사용하여 KMFCryptoOperation 객체에 문자열 기반 서명을 추가합니다.
var signature = "John Doe";
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SIGNATURE_VERIFICATION")
.withAdditionalInput(signature);
var value = GlideStringUtil.base64Encode("Text to encode"); // Default input format is KMFBase64
var result = op.doOperation(String(value));
이 예제에서는 withAdditionalInput() 을 사용하여 KMFCryptoOperation 객체에 서명 및 임시 키를 추가합니다. doOperation() 호출 및 payload description의 값과 같은 긴 값은 잘리고 가독성을 위해 줄임표로 대체되었습니다.
var payload = new sn_kmf_ns.KMFEncryptionPayload();
payload.signature = "pkg...";
payload.ephemeral_key = " BDi...";
payload.ephemeral_key_format = "x962";
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_DECRYPTION")
.withAdditionalInput(payload)
.doOperation("afFS...";
KMFCryptoOperation - withAlgorithm(문자열 알고리즘)
래핑할 키 구성 요소와 연결된 알고리즘을 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 알고리즘 | 문자열 | 사용할 알고리즘입니다. 유효한 값은 다음과 같습니다.
|
| 유형 | 설명 |
|---|---|
| 없음 |
이 예제에서는 withAlgorithm() 을 사용하여 EC에 사용되는 암호화 알고리즘을 변경합니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","ASYMMETRIC_WRAPPING").withAlgorithm("EC");
var value = GlideStringUtil.base64Encode("Sample key"); // Default input format is KMFBase64
var result = op.doOperation(String(value));
KMFCryptoOperation - withInputFormat(문자열 inputFormat)
암호화 작업이 수행될 입력 데이터의 데이터 형식을 설정합니다. 데이터를 디코딩할 때 지정된 형식을 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 입력 형식 | 문자열 | 입력 데이터의 형식입니다. 유효한 값은 다음과 같습니다.
기본값: KMFCryptoOperation 개체가 인스턴스화될 때 지정된 작업에 의해 결정되는 값입니다. 자세한 내용은 KMFCryptoOperation - KMFCryptoOperation(문자열 cryptoModuleName, 문자열 operationName) 문서를 참조하십시오. |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예제에서는 withInputFormat() 을 사용하여 인코딩이 없도록 입력 형식을 변경합니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_ENCRYPTION").withInputFormat("KMFNone");
var result = op.doOperation("Text with no encoding"); // Pass in unencrypted String
KMFCryptoOperation - withOutputFormat(문자열 outputFormat)
암호화 작업에서 반환되는 출력 데이터의 데이터 형식을 설정합니다. 데이터를 인코딩할 때 지정된 형식을 사용합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 출력 포맷 | 문자열 | 출력 데이터의 형식입니다. 유효한 값은 다음과 같습니다.
이 메서드가 호출되지 않은 경우 기본값: KMFCryptoOperation 개체가 인스턴스화될 때 지정된 작업에 의해 결정되는 값입니다. 자세한 내용은 KMFCryptoOperation - KMFCryptoOperation(문자열 cryptoModuleName, 문자열 operationName) 문서를 참조하십시오. |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예제에서는 withOutputFormat() 을 사용하여 암호 해독의 출력 형식을 KMFNone(기본값은 KMFBase64)으로 설정합니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_DECRYPTION").withOutputFormat("KMFNone");
var clear_data = op.doOperation(<FORMATTED_data>); // Pass in default of FORMATTED data
KMFCryptoOperation - withOutputType(문자열 outputType)
암호화 작업이 수행된 후 반환되는 출력 데이터의 데이터 형식을 설정합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| 출력 유형 | 문자열 | 출력 데이터의 유형입니다. 모든 출력 유형을 모든 작업에 적용할 수 있는 것은 아닙니다. 지원되지 않는 형식의 경우 예외가 throw됩니다. 유효한 값(대소문자 구분 안 함):
주: Payload의 출력을 지정할 때 doOperation() 메서드의 출력은 KMFEncryptionPayload 객체입니다. 이 객체의 구조에 대한 자세한 내용은 withAdditionalInput()을 참조하십시오. 기본값: KMFCryptoOperation 개체가 인스턴스화될 때 지정된 작업에 의해 결정되는 값입니다. 자세한 내용은 KMFCryptoOperation - KMFCryptoOperation(문자열 cryptoModuleName, 문자열 operationName) 문서를 참조하십시오. |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예제에서는 withOutputType() 을 사용하여 MAC_VERIFICATION의 출력 형식을 Boolean으로 설정합니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","MAC_VERIFICATION")
.withOutputType("Boolean").withAdditionalInput(<MAC>);
var value = GlideStringUtil.base64Encode("Text to sign"); // Default input type is KMFBase64
var result = op.doOperation(String(value));
KMFCryptoOperation - withSysId(문자열 sysId)
KMFCryptoOperation 개체에서 줄 바꿈할 키의 sys_id 설정합니다. 키의 대칭 및 비대칭 래핑에 적용할 수 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
| sysId | 문자열 | 래핑할 키의 Sys_id입니다. 모듈 키 [sys_kmf_module_key] 테이블에 있습니다. |
| 유형 | 설명 |
|---|---|
| 없음 |
이 예제에서는 withSysId() 를 사용하여 래핑할 키를 정의합니다.
var op = new sn_kmf_ns.KMFCryptoOperation("global.sj_cm","SYMMETRIC_WRAPPING").withSysId("0d06ce525b231010f86d1b341d81c777");
var wrappedKey = operation.doOperation(); // No need to pass data when using withSysId()