This package manipulates the keychain using the security command.
npm install @akiojin/keychainThis package uses the security command to manipulate the keychain.
``js`
import { Keychain, KeychainFile } from '@akiojin/keychain'
`js
const keychain = Keychain.GenerateKeychainPath('test')
await Keychain.CreateKeychain(keychain, '
await Keychain.UnlockKeychain(keychain, '
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())
`
`js`
const keychainPath = await Keychain.CreateKeychain('
const keychain = new KeychainFile(keychainPath)
keychain.SetPassword('
keychain.Lock()
keychain.Unlock()
keychain.SetDefault()
`js`
const keychain = await KeychainFile.Open('
keychain.Lock()
keychain.Unlock('
keychain.SetDefault()
#### 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
##### 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
##### 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
##### 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
##### 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
##### Description
Locks all keychains.
##### Return
| Type | Description |
| -------- | ----------- |
| number | Exit code |
#### static UnlockKeychain(keychain: string, password: string): Promise
#### static UnlockKeychain(password: string): Promise
#### static UnlockKeychain(keychain?: string, password?: string): Promise
##### 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
##### 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
##### Description
Returns the default keychain.
##### Return
| Type | Description |
| ---------- | ----------------------- |
| string[] | Array of keychain paths |
#### static SetDefaultKeychain(keychain: string): Promise
##### 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
##### Description
Display the default keychain on the console.
##### Return
| Type | Description |
| -------- | ----------- |
| number | Exit code |
#### static SetLoginKeychain(keychain: string): Promise
##### 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
##### Description
Display the login keychain on the console.
##### Return
| Type | Description |
| -------- | ----------- |
| number | Exit code |
#### static SetListKeychain(keychain: string): Promise
##### 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
##### 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
##### 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
##### 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
##### 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 |