npm.io
1.0.1 • Published 1 year ago

@akiojin/keychain

Licence
MIT
Version
1.0.1
Deps
2
Size
99 kB
Vulns
0
Weekly
0

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
Name Type Description
name string The keychain name.
Return
Type Description
string keychain path
static GetDefaultLoginKeychainPath(): string
Description

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

Return
Type Description
string keychain 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
Name Type Description
keychain string Path of the keychain. If only the keychain name is specified, it will be placed in ~/Library/Keychains.
password string Keychain password
Return
Type Description
number Exit 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
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
certificate string Certificate Path
passphrase string Certificate passphrase
Return
Type Description
number Exit code
static ChangeKeychainPassword(keychain: string, oldPassword: string, newPassword: string): Promise<number>
Description

Change the password set for the keychain.

Arguments
Name Type Description
keychain string Path of the keychain. If only the keychain name is specified, it will be placed in ~/Library/Keychains.
oldPassword string Old password
newPassword string New password
Return
Type Description
number Exit code
static LockKeychain(keychain?: string): Promise<number>
Description

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

Arguments
Name Type Description
keychain? string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
Type Description
number Exit code
static LockKeychainAll(): Promise<number>
Description

Locks all keychains.

Return
Type Description
number Exit 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
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
password string Keychain password
Return
Type Description
number Exit 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
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
seconds number Timeout in seconds (omitting this option specifies "no timeout")
Return
Type Description
number Exit code
static DeleteKeychain(keychain: string): Promise<number>
Description

Deletes the specified keychain.

Arguments
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
Type Description
number Exit code
static async GetDefaultKeychain(): Promise<string[]>
Description

Returns the default keychain.

Return
Type Description
string[] Array of keychain paths
static SetDefaultKeychain(keychain: string): Promise<number>
Description

Sets the specified keychain as the default keychain.

Arguments
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
Type Description
number Exit code
static ShowDefaultKeychain(): Promise<number>
Description

Display the default keychain on the console.

Return
Type Description
number Exit code
static SetLoginKeychain(keychain: string): Promise<number>
Description

Set the specified keychain as the login keychain.

Arguments
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
Type Description
number Exit code
static ShowLoginKeychain(): Promise<number>
Description

Display the login keychain on the console.

Return
Type Description
number Exit 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
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
Type Description
number Exit 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
Name Type Description
keychains string[] Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
Type Description
number Exit 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
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
password string Keychain password
Return
Type Description
number Exit code
static FindGenericPassword(service: string): Promise<number>
Description

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

Arguments
Name Type Description
service string Services to search
Return
Type Description
number Exit code
static ShowCodeSigning(keychain: string): Promise<number>
Description

Displays a list of certificates imported into the specified keychain.

Arguments
Name Type Description
keychain string Path of the keychain. If no path is specified and only the keychain name is given, it is searched from ~/Library/Keychains/.
Return
Type Description
number Exit code

Keywords