Manages the lifecycle of a key. Keys are encrypted at rest using PKCS #8.

A key in the store has two entries

  • '/info/key-name', contains the KeyInfo for the key
  • '/pkcs8/key-name', contains the PKCS #8 for the key

Hierarchy

  • DefaultKeyChain

Implements

Constructors

Properties

components: KeyChainComponents

Accessors

  • get options(): {
        dek: {
            hash: string;
            iterationCount: number;
            keyLength: number;
            salt: string;
        };
    }
  • Gets an object that can encrypt/decrypt protected data. The default options for a keychain.

    Returns

    Returns {
        dek: {
            hash: string;
            iterationCount: number;
            keyLength: number;
            salt: string;
        };
    }

    • dek: {
          hash: string;
          iterationCount: number;
          keyLength: number;
          salt: string;
      }
      • hash: string
      • iterationCount: number
      • keyLength: number
      • salt: string

Methods

  • Create a new key.

    Parameters

    • name: string

      The local key name; cannot already exist.

    • type: KeyType

      One of the key types; 'rsa'.

    • Optional size: number = 2048

    Returns Promise<KeyInfo>

  • Export an existing key as a PEM encrypted PKCS #8 string

    Parameters

    • name: string
    • password: string

    Returns Promise<string>

  • Export an existing key as a PeerId

    Parameters

    • name: string

    Returns Promise<PeerId>

  • Find a key by it's name.

    Returns

    Parameters

    • name: string

      The local key name.

    Returns Promise<KeyInfo>

  • Gets the private key as PEM encoded PKCS #8 string

    Parameters

    • name: string

    Returns Promise<string>

  • Import a new key from a PEM encoded PKCS #8 string

    Returns

    Parameters

    • name: string

      The local key name; must not already exist.

    • pem: string

      The PEM encoded PKCS #8 string

    • password: string

      The password.

    Returns Promise<KeyInfo>

  • Remove an existing key.

    Returns

    Parameters

    • name: string

      The local key name; must already exist.

    Returns Promise<KeyInfo>

  • Rename a key

    Returns

    Parameters

    • oldName: string

      The old local key name; must already exist.

    • newName: string

      The new local key name; must not already exist.

    Returns Promise<KeyInfo>

  • Rotate keychain password and re-encrypt all associated keys

    Parameters

    • oldPass: string
    • newPass: string

    Returns Promise<void>