// identity.js - Identity Management Wrapper
//
// Wraps keet-identity-key for consistent API
import KeetIdentityKey from 'keet-identity-key'
/**
* Identity wrapper
* Provides consistent API for identity management and exposes mnemonic for WDK
*/
class IdentityKey {
/**
* Create identity from mnemonic
* @param {Object} options - { mnemonic }
* @returns {IdentityKey} - Identity instance with mnemonic exposed
*/
static async from({ mnemonic }) {
const identity = await KeetIdentityKey.from({ mnemonic })
// Expose mnemonic for WDK (WDK needs the mnemonic to derive keys)
identity.mnemonic = mnemonic
return identity
}
/**
* Verify device attestation proof
* @param {Buffer} proof - Attestation proof
* @returns {Boolean} - True if valid
*/
static verify(proof) {
return KeetIdentityKey.verify(proof)
}
/**
* Attest new device
* @param {Buffer} devicePublicKey - Device public key
* @param {Object} signingDevice - Device with signing authority
* @param {Buffer} previousProof - Previous attestation proof
* @returns {Buffer} - New attestation proof
*/
static attest(devicePublicKey, signingDevice, previousProof) {
return KeetIdentityKey.attest(devicePublicKey, signingDevice, previousProof)
}
}
export default IdentityKey