1.0.0 • Published 1 year ago

@akiojin/keychain v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

keychain

This package uses the security command to manipulate the keychain.

Usage

Import

import { Keychain, KeychainFile } from '@akiojin/keychain'

Keychain

const keychain = Keychain.GenerateKeychainPath('test')

await Keychain.CreateKeychain(keychain, '<Password>')
await Keychain.UnlockKeychain(keychain, '<Password>')
await Keychain.SetKeychainTimeout(keychain, 21600)
await Keychain.SetDefaultKeychain(keychain)
await Keychain.SetLoginKeychain(keychain)
await Keychain.SetListKeychain(keychain)
await Keychain.DeleteKeychain(keychain)

await Keychain.SetDefaultKeychain(Keychain.GetDefaultLoginKeychainPath())

KeychainFile

const keychainPath = await Keychain.CreateKeychain('<Keychain name or path>', '<Password>')
const keychain = new KeychainFile(keychainPath)
keychain.SetPassword('<Password>')
keychain.Lock()
keychain.Unlock()
keychain.SetDefault()
const keychain = await KeychainFile.Open('<Keychain name or path>')
keychain.Lock()
keychain.Unlock('<Password>')
keychain.SetDefault()

Reference

class Keychain

static GenerateKeychainPath(name: string): string

Description

Returns the keychain path given the keychain name. This method does not create the keychain, only generates the path.

Arguments
NameTypeDescription
namestringThe keychain name.
Return
TypeDescription
stringkeychain path

static GetDefaultLoginKeychainPath(): string

Description

Returns the path to login.keychain-db, which exists by default.

Return
TypeDescription
stringkeychain path

static CreateKeychain(keychain: string, password: string): Promise<number>

Description

Create a new keychain and set a password. Immediately after creation, the keychain is unlocked.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If only the keychain name is specified, it will be placed in ~/Library/Keychains.
passwordstringKeychain password
Return
TypeDescription
numberExit code

static ImportCertificateFromFile(keychain: string, certificate: string, passphrase: string): Promise<number>

Description

Import the certificate into the specified keychain. The keychain must be unlocked.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
certificatestringCertificate Path
passphrasestringCertificate passphrase
Return
TypeDescription
numberExit code

static ChangeKeychainPassword(keychain: string, oldPassword: string, newPassword: string): Promise<number>

Description

Change the password set for the keychain.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If only the keychain name is specified, it will be placed in ~/Library/Keychains.
oldPasswordstringOld password
newPasswordstringNew password
Return
TypeDescription
numberExit code

static LockKeychain(keychain?: string): Promise<number>

Description

Lock keychain. If keychain is omitted, locks default keychains.

Arguments
NameTypeDescription
keychain?stringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
TypeDescription
numberExit code

static LockKeychainAll(): Promise<number>

Description

Locks all keychains.

Return
TypeDescription
numberExit code

static UnlockKeychain(keychain: string, password: string): Promise<number>

static UnlockKeychain(password: string): Promise<number>

static UnlockKeychain(keychain?: string, password?: string): Promise<number>

Description

Unlock the keychain. Unlock the default keychain if the keyholder is omitted.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
passwordstringKeychain password
Return
TypeDescription
numberExit code

static SetKeychainTimeout(keychain: string, seconds: number)

Description

Sets the number of timeout seconds before the keychain locks without operation. This setting also sets the lock at sleep at the same time.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
secondsnumberTimeout in seconds (omitting this option specifies "no timeout")
Return
TypeDescription
numberExit code

static DeleteKeychain(keychain: string): Promise<number>

Description

Deletes the specified keychain.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
TypeDescription
numberExit code

static async GetDefaultKeychain(): Promise<string[]>

Description

Returns the default keychain.

Return
TypeDescription
string[]Array of keychain paths

static SetDefaultKeychain(keychain: string): Promise<number>

Description

Sets the specified keychain as the default keychain.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
TypeDescription
numberExit code

static ShowDefaultKeychain(): Promise<number>

Description

Display the default keychain on the console.

Return
TypeDescription
numberExit code

static SetLoginKeychain(keychain: string): Promise<number>

Description

Set the specified keychain as the login keychain.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
TypeDescription
numberExit code

static ShowLoginKeychain(): Promise<number>

Description

Display the login keychain on the console.

Return
TypeDescription
numberExit code

static SetListKeychain(keychain: string): Promise<number>

Description

Set in the key chain list. This method overrides any other keychain list that may have been set.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
TypeDescription
numberExit code

static SetListKeychains(keychains: string[]): Promise<number>

Description

Set in the key chain list. This method overrides any other keychain list that may have been set.

Arguments
NameTypeDescription
keychainsstring[]Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
TypeDescription
numberExit code

static AllowAccessForAppleTools(keychain: string, password: string): Promise<number>

Description

Set permissions for Apple tools for the keychain. Since this method is an access permission to the signature, the signature must have been imported in advance.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
passwordstringKeychain password
Return
TypeDescription
numberExit code

static FindGenericPassword(service: string): Promise<number>

Description

Retrieves passwords for specified services and displays them in the console.

Arguments
NameTypeDescription
servicestringServices to search
Return
TypeDescription
numberExit code

static ShowCodeSigning(keychain: string): Promise<number>

Description

Displays a list of certificates imported into the specified keychain.

Arguments
NameTypeDescription
keychainstringPath of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
TypeDescription
numberExit code