DID 및 DID Document 생성
> create wallet API
-
지갑 (Wallet) 생성
DID, VC, 인증키 등 보관
-
매개변수
(1) config 변수
-id : 지갑을 식별할 수 있는 지갑 id
- storage_type : 지갑 데이터 저장소
+ storage config 관련 정보가 JSON 데이터로 입력된다.
(2) credential 변수
-인증키 / 비밀번호 : 지갑에 접근하기 위한 키
-키 생성 방법
-키를 저장하는 저장소 etc.. JSON 데이터로 입력된다.
> open wallet API
> create_ and _store_my_did API
- DID와 DID Document에 들어갈 인증키 생성 및 지갑에 저장
- 매개변수
(1) wallet handle : DID를 저장할 지갑의 id
(2) did_json : DID 생성 방법 등을 명시한 JSON 데이터가 포함된다.
> build_nym_request API
- NYM 트랜잭션 생성
블록체인에 DID를 등록하기 위한
- 매개변수
(1) 트랜잭션 생성자의 DID
(2) 블록체인에 등록할 DID 및 공개키
(3) 등록할 DID가 소속될 그룹 정보 etc.. 매개변수들이 입력된다.
> sign_and_submit_request API
- 생성한 NYM 트랜잭션을 indy-node(블록체인)로 전송한다.
- 매개변수
(1) pool handle : 어떤 블록체이 네트워크에 생성할 지 명시
(2) wallet id : 트랜잭션 생성자 DID, 트랜잭션에 서명하기 위한 인증키가 저장된 지갑 id
(3) NYM Transaction : indy-node로 전송할 NYM 트랜잭션
👉🏻 indy-node ) 트랜잭션 등록에 대한 작업 결과 반환
DID Document 업데이트
📌 블록체인에 저장된 DID Document의 인증키 변경
📌 serviceEndPoint 항목 추가
> replace_keys_start API
- 새로운 비대칭키 쌍 생성
- 매개변수
-identity-json : 키 생성방식, seed 등 정의한 후 비대칭 키 쌍 생성
> replace_keys_apply API
- 기존의 DID의 키 쌍 삭제 및 새로 생성한 키 쌍 등록
> set_andpoint_for_did API
- serviceEndPoint 항목 추가
- 매개변수
(1) address : 서비스 URL을 입력하여 추가할 수 있다.
> build_nym_request API
- NYM 트랜잭션 생성
변경된 DID 인증키를 원장에 적용하는
> build_attrib_request API
- ATTRIB 트랜잭션 생성
serviceEndPoint 항목을 추가하기 위한
> sign_and_submit_request API
- indy-node(블록체인)에 전송
앞서 생성한 NYM, ATTRIB 트랜잭션을
👉🏻 indy-node ) 트랜잭션 등록에 대한 작업 결과 반환
Schema 및 Credential Definition 생성
📌 Schema 생성
📌 Credential Definition 생성
> issuer_create_schema API
- schema 생성
- 매개변수
(1) Schema를 생성한 발행인 DID
(2) Schema 이름 및 버전
(3) Schema에 들어갈 데이터 (이름, 나이, 주소 etc... | VC 발급 대상의 Identity를 정의할 수 있는 항목.
> build_schema_request API
> sign_and_submit_request API
> issuer_create_and_store_credential_def API
- Credential Definition 생성
- 매개변수
(1) 발행인의 DID
(2) Credential Definition과 함께 사용할 Schema
(3) Credential Definition을 통해 발행한 VC에 사용할 서명 및 폐기 방법 etc...
> build_cred_def_request API
> sign_and_submit_request API
VC Revocation Registry 생성 및 VC 폐기
📌 (VC 폐기 관련) Revocation Registry 생성
📌 (Revocation Registry 이용하여) VC 폐기
> issuer_create_and_store_revoc_reg API
- revoc_reg_def 생성
- 매개변수
(1) Credential Definition의 id
(2) 폐기 방법
(3) 폐기 가능한 최대 VC 개수
(4) Tails 파일 접근 정보 etc...
> build_revoc_def_request API
> sign_and_submit_request API
> issure_revoke_credential API
- VC 폐기
- 매개변수
(1) 폐기할 VC의 id
(2) 블록체인에 저장된 Revocation Registry의 id
(3) Tails 파일에 접근하기 위한 핸들러 etc...
> build_revoc_reg_entry_request API
> sign_and_submit_request API
VC 생성 및 발급
> issuer_create_credential_offer API
- Credential Offer 생성 및 사용자 전달
- 매개변수
(1) Schema id (블록체인에 저장된 발행인의 VC 양식을 가져오기 위해 필요한)
(2) Credential Definition id
> prover_create_master_secret API
- (VC에 대한 소유권 증명을 위한) Master Secret (=Link Secret) 생성
> build_get_cred_def_request API
- 발행인의 Credential Definition 요청 트랜잭션 생성
> submit_request API
> prover_create_credential_request API
- 주어진 Credential Officer에 대한 VC 발급 요청 데이터를 생성하여 발행인에 전송한다.
- VC 발급 요청 데이터
(1) VC의 Credential Definition
(2) VC 소유권을 증명을 위한 MasterKEy etc..
> issuer_create_credential API
> prover_store_credential API
VP 생성 및 검증