@akiojin/keychain
v1.0.1
Published
This package manipulates the keychain using the security command.
Readme
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 |
