Agents and public-key management
Exact declarations for 122 package-root exports. Private and protected class members are omitted.
Agent
Class. Declared in src/publickey/Agent.ts.
export default abstract class Agent<Id = string> {
abstract type: AgentType;
getStream?(): Promise<Duplex>;
abstract sign(id: Id, data: Buffer, algorithm?: string): Promise<EncodedSignature>;
abstract getPublicKeys(): Promise<[
Id,
PublicKey
][]>;
abstract getPublicKey(id: Id): Promise<PublicKey>;
}AgentError
Class. Declared in src/publickey/Agent.ts.
export declare class AgentError extends Error {
name: string;
}AgentType
Enum. Declared in src/publickey/Agent.ts.
export declare enum AgentType {
Interactive = 0,
NonInteractive = 1
}createSocketAgent
Function. Declared in src/publickey/SocketAgent.ts.
/** Construct the socket-backed agent appropriate for the current platform and path. */
export declare function createSocketAgent(socketPath: string): Agent<string>;CygwinAgent
Class. Declared in src/publickey/CygwinAgent.ts.
/** A signing agent transported through Cygwin's legacy AF_UNIX socket-file protocol. */
export default class CygwinAgent extends Agent<string> {
readonly type = AgentType.NonInteractive;
readonly socketPath: string;
readonly options: Readonly<Required<CygwinAgentOptions>>;
constructor(socketPath: string, options?: CygwinAgentOptions);
getPublicKeys(): Promise<[
string,
PublicKey
][]>;
getPublicKey(id: string): Promise<PublicKey>;
sign(id: string, data: Buffer, algorithm?: string): Promise<EncodedSignature>;
getStream(): Promise<Socket>;
}CygwinAgentError
Class. Declared in src/publickey/CygwinAgent.ts.
export declare class CygwinAgentError extends AgentError {
name: string;
}CygwinAgentOptions
Interface. Declared in src/publickey/CygwinAgent.ts.
export interface CygwinAgentOptions {
/** Maximum idle milliseconds for each TCP handshake. Zero disables the deadline. */
handshakeTimeout?: number;
/** Maximum bytes read from the Cygwin socket descriptor file. */
maxSocketFileLength?: number;
}decodePublicKeySubsystemPacket
Function. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare function decodePublicKeySubsystemPacket(frame: Buffer): PublicKeySubsystemPacket;discoverPageantAgentSocket
Function. Declared in src/publickey/PageantDiscovery.ts.
/** Discover the named pipe used by Pageant 0.75 and newer for the current Windows user. */
export declare function discoverPageantAgentSocket(): string;DiskAgent
Class. Declared in src/publickey/DiskAgent.ts.
export default class DiskAgent implements Agent<string> {
type: AgentType;
readonly directory: string;
constructor(directory?: string, options?: DiskAgentOptions);
sign(id: string, data: Buffer, algorithm?: string): Promise<EncodedSignature>;
getPublicKeys(): Promise<[
string,
PublicKey
][]>;
getPublicKey(id: string): Promise<PublicKey>;
}DiskAgentError
Class. Declared in src/publickey/DiskAgent.ts.
export declare class DiskAgentError extends AgentError {
name: string;
}DiskAgentOptions
Interface. Declared in src/publickey/DiskAgent.ts.
export interface DiskAgentOptions {
readonly passphrase?: DiskAgentPassphrase | ((privateKeyPath: string) => DiskAgentPassphrase | Promise<DiskAgentPassphrase>);
readonly onInvalidPublicKey?: (error: DiskAgentError, publicKeyPath: string) => void | Promise<void>;
}DiskAgentPassphrase
Type. Declared in src/publickey/DiskAgent.ts.
export type DiskAgentPassphrase = string | Buffer;encodePublicKeySubsystemPacket
Function. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare function encodePublicKeySubsystemPacket(packet: PublicKeySubsystemPacket): Buffer;MAX_OPENSSH_AGENT_ASSOCIATED_CERTIFICATES
Constant. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export declare const MAX_OPENSSH_AGENT_ASSOCIATED_CERTIFICATES = 1024;MAX_OPENSSH_AGENT_DESTINATION_CONSTRAINTS
Constant. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export declare const MAX_OPENSSH_AGENT_DESTINATION_CONSTRAINTS = 1024;MAX_OPENSSH_AGENT_SESSION_BINDINGS
Constant. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export declare const MAX_OPENSSH_AGENT_SESSION_BINDINGS = 16;MAX_OPENSSH_AGENT_SESSION_IDENTIFIER_LENGTH
Constant. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export declare const MAX_OPENSSH_AGENT_SESSION_IDENTIFIER_LENGTH = 128;MAX_PUBLIC_KEY_SUBSYSTEM_NAMESPACE_CHARACTERS
Constant. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare const MAX_PUBLIC_KEY_SUBSYSTEM_NAMESPACE_CHARACTERS = 300;MAX_PUBLIC_KEY_SUBSYSTEM_PACKET_LENGTH
Constant. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare const MAX_PUBLIC_KEY_SUBSYSTEM_PACKET_LENGTH: number;MAX_PUBLIC_KEY_SUBSYSTEM_RESPONSE_BYTES
Constant. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare const MAX_PUBLIC_KEY_SUBSYSTEM_RESPONSE_BYTES: number;MAX_PUBLIC_KEY_SUBSYSTEM_RESPONSES
Constant. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare const MAX_PUBLIC_KEY_SUBSYSTEM_RESPONSES = 1024;MAX_SSH_AGENT_MESSAGE_LENGTH
Constant. Declared in src/publickey/SSHAgentProtocol.ts.
export declare const MAX_SSH_AGENT_MESSAGE_LENGTH: number;OnePasswordAgent
Class. Declared in src/publickey/OnePasswordAgent.ts.
export default class OnePasswordAgent extends SSHAgent {
type: AgentType;
constructor(agentSocketPath?: string);
}OnePasswordAgentError
Class. Declared in src/publickey/OnePasswordAgent.ts.
export declare class OnePasswordAgentError extends SSHAgentError {
name: string;
}OPENSSH_AGENT_ASSOCIATED_CERTIFICATES
Constant. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export declare const OPENSSH_AGENT_ASSOCIATED_CERTIFICATES = "associated-certs-v00@openssh.com";OPENSSH_AGENT_RESTRICT_DESTINATION
Constant. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export declare const OPENSSH_AGENT_RESTRICT_DESTINATION = "restrict-destination-v00@openssh.com";OPENSSH_AGENT_SECURITY_KEY_PROVIDER
Constant. Declared in src/publickey/SSHAgentProtocol.ts.
export declare const OPENSSH_AGENT_SECURITY_KEY_PROVIDER = "sk-provider@openssh.com";OPENSSH_AGENT_SESSION_BIND
Constant. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export declare const OPENSSH_AGENT_SESSION_BIND = "session-bind@openssh.com";OpenSSHAgentAssociatedCertificatesConstraint
Type. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export type OpenSSHAgentAssociatedCertificatesConstraint = Readonly<{
type: "openssh-associated-certificates";
certificatesOnly?: boolean;
certificates: readonly PublicKey[];
}>;OpenSSHAgentDestinationConstraint
Type. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export type OpenSSHAgentDestinationConstraint = Readonly<{
type: "openssh-restrict-destination";
destinations: readonly OpenSSHAgentDestinationRule[];
}>;OpenSSHAgentDestinationHop
Type. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export type OpenSSHAgentDestinationHop = Readonly<{
hostname: string;
hostKeys: readonly OpenSSHAgentDestinationKey[];
}>;OpenSSHAgentDestinationKey
Type. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export type OpenSSHAgentDestinationKey = Readonly<{
publicKey: PublicKey;
certificateAuthority?: boolean;
}>;OpenSSHAgentDestinationRule
Type. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export type OpenSSHAgentDestinationRule = Readonly<{
/** Undefined identifies the initial hop from the machine running the agent. */
from?: OpenSSHAgentDestinationHop;
to: Readonly<{
username?: string;
hostname: string;
hostKeys: readonly OpenSSHAgentDestinationKey[];
}>;
}>;OpenSSHAgentKeyConstraint
Type. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export type OpenSSHAgentKeyConstraint = OpenSSHAgentDestinationConstraint | OpenSSHAgentAssociatedCertificatesConstraint;OpenSSHAgentSecurityKeyProviderConstraint
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type OpenSSHAgentSecurityKeyProviderConstraint = Readonly<{
type: "openssh-security-key-provider";
provider: string;
}>;OpenSSHAgentSessionBinding
Type. Declared in src/publickey/OpenSSHAgentProtocol.ts.
export type OpenSSHAgentSessionBinding = Readonly<{
hostKey: PublicKey;
sessionIdentifier: Buffer;
signature: EncodedSignature;
forwarding: boolean;
}>;PageantAgent
Class. Declared in src/publickey/PageantAgent.ts.
/** An agent client for Pageant's standard agent-protocol transport. */
export default class PageantAgent extends SSHAgent {
type: AgentType;
constructor(socketPath?: string);
}PageantAgentError
Class. Declared in src/publickey/PageantDiscovery.ts.
export declare class PageantAgentError extends SSHAgentError {
name: string;
}PrivateKeyAgent
Class. Declared in src/publickey/PrivateKeyAgent.ts.
export default class PrivateKeyAgent extends Agent<string> {
readonly type = AgentType.NonInteractive;
constructor(keys: PrivateKey | readonly PrivateKey[]);
getPublicKeys(): Promise<[
string,
PublicKey
][]>;
getPublicKey(id: string): Promise<PublicKey>;
sign(id: string, data: Buffer, algorithm?: string): Promise<EncodedSignature>;
}PrivateKeyAgentError
Class. Declared in src/publickey/PrivateKeyAgent.ts.
export declare class PrivateKeyAgentError extends AgentError {
name: string;
}PUBLIC_KEY_SUBSYSTEM_VERSION
Constant. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare const PUBLIC_KEY_SUBSYSTEM_VERSION = 3;PublicKeySubsystemAddAttribute
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemAddAttribute {
readonly name: string;
readonly value: Buffer;
readonly critical: boolean;
}PublicKeySubsystemAddCertificateOptions
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemAddCertificateOptions extends PublicKeySubsystemAddOptions {
readonly namespace: string;
}PublicKeySubsystemAddCertificatePacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemAddCertificatePacket {
readonly type: "add-certificate";
readonly format: string;
readonly certificateBlob: Buffer;
readonly overwrite: boolean;
readonly attributes: readonly PublicKeySubsystemAddAttribute[];
}PublicKeySubsystemAddOptions
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemAddOptions {
readonly overwrite?: boolean;
readonly namespace?: string;
readonly attributes?: readonly PublicKeySubsystemAttributeInput[];
}PublicKeySubsystemAddPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemAddPacket {
readonly type: "add";
readonly algorithm: string;
readonly keyBlob: Buffer;
readonly overwrite: boolean;
readonly attributes: readonly PublicKeySubsystemAddAttribute[];
}PublicKeySubsystemAttributeInput
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemAttributeInput {
readonly name: string;
readonly value: string | Buffer;
readonly critical?: boolean;
}PublicKeySubsystemAttributePacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemAttributePacket {
readonly type: "attribute";
readonly name: string;
readonly compulsory: boolean;
}PublicKeySubsystemCertificate
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemCertificate {
readonly format: string;
readonly certificate: Buffer;
readonly namespace: string;
readonly attributes: readonly PublicKeySubsystemListedAttribute[];
}PublicKeySubsystemCertificatePacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemCertificatePacket {
readonly type: "certificate";
readonly format: string;
readonly certificateBlob: Buffer;
readonly attributes: readonly PublicKeySubsystemListedAttribute[];
}PublicKeySubsystemClient
Class. Declared in src/publickey/PublicKeySubsystemClient.ts.
export default class PublicKeySubsystemClient {
readonly protocolVersion = 3;
readonly channel: ClientSessionChannel;
readonly requestTimeout: number;
get negotiatedProtocolVersion(): number | undefined;
static connect(channel: ClientSessionChannel, options?: PublicKeySubsystemClientOptions): Promise<PublicKeySubsystemClient>;
add(key: PublicKey, options?: PublicKeySubsystemAddOptions): Promise<void>;
remove(key: PublicKey, options?: PublicKeySubsystemRequestOptions): Promise<void>;
list(options?: PublicKeySubsystemRequestOptions): Promise<readonly PublicKeySubsystemKey[]>;
addCertificate(format: string, certificate: Buffer, options: PublicKeySubsystemAddCertificateOptions): Promise<void>;
removeCertificate(format: string, certificate: Buffer, options: PublicKeySubsystemRemoveCertificateOptions): Promise<void>;
listCertificates(): Promise<readonly PublicKeySubsystemCertificate[]>;
listNamespaces(): Promise<readonly string[]>;
listAttributes(): Promise<readonly PublicKeySubsystemSupportedAttribute[]>;
end(): void;
/** Close the subsystem and settle after its SSH channel closes. */
close(): Promise<void>;
[Symbol.asyncDispose](): Promise<void>;
destroy(error?: Error): void;
}PublicKeySubsystemClientOptions
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemClientOptions {
/** Maximum integer milliseconds for initialization or a reply. Range: 1 through 2147483647. */
requestTimeout?: number;
}PublicKeySubsystemKey
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemKey {
readonly key: PublicKey;
readonly namespace?: string;
readonly attributes: readonly PublicKeySubsystemListedAttribute[];
}PublicKeySubsystemListAttributesPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemListAttributesPacket {
readonly type: "listattributes";
}PublicKeySubsystemListCertificatesPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemListCertificatesPacket {
readonly type: "list-certificates";
}PublicKeySubsystemListedAttribute
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemListedAttribute {
readonly name: string;
readonly value: Buffer;
}PublicKeySubsystemListNamespacesPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemListNamespacesPacket {
readonly type: "list-namespaces";
}PublicKeySubsystemListPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemListPacket {
readonly type: "list";
/** Present on RFC 7076 version-3 requests and absent on RFC 4819 version-2 requests. */
readonly attributes?: readonly PublicKeySubsystemAddAttribute[];
}PublicKeySubsystemNamespacePacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemNamespacePacket {
readonly type: "namespace";
readonly name: string;
}PublicKeySubsystemPacket
Type. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export type PublicKeySubsystemPacket = PublicKeySubsystemVersionPacket | PublicKeySubsystemAddPacket | PublicKeySubsystemStatusPacket | PublicKeySubsystemRemovePacket | PublicKeySubsystemListPacket | PublicKeySubsystemListAttributesPacket | PublicKeySubsystemPublicKeyPacket | PublicKeySubsystemAttributePacket | PublicKeySubsystemAddCertificatePacket | PublicKeySubsystemRemoveCertificatePacket | PublicKeySubsystemListCertificatesPacket | PublicKeySubsystemCertificatePacket | PublicKeySubsystemListNamespacesPacket | PublicKeySubsystemNamespacePacket | PublicKeySubsystemUnknownPacket;PublicKeySubsystemPacketParser
Class. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare class PublicKeySubsystemPacketParser {
push(chunk: Buffer): PublicKeySubsystemPacket[];
end(): void;
}PublicKeySubsystemProtocolError
Class. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare class PublicKeySubsystemProtocolError extends Error {
constructor(message: string);
}PublicKeySubsystemPublicKeyPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemPublicKeyPacket {
readonly type: "publickey";
readonly algorithm: string;
readonly keyBlob: Buffer;
readonly attributes: readonly PublicKeySubsystemListedAttribute[];
}PublicKeySubsystemRemoveCertificateOptions
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemRemoveCertificateOptions extends PublicKeySubsystemRequestOptions {
readonly namespace: string;
}PublicKeySubsystemRemoveCertificatePacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemRemoveCertificatePacket {
readonly type: "remove-certificate";
readonly format: string;
readonly certificateBlob: Buffer;
readonly attributes: readonly PublicKeySubsystemListedAttribute[];
}PublicKeySubsystemRemovePacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemRemovePacket {
readonly type: "remove";
readonly algorithm: string;
readonly keyBlob: Buffer;
/** Present on RFC 7076 version-3 requests and absent on RFC 4819 version-2 requests. */
readonly attributes?: readonly PublicKeySubsystemAddAttribute[];
}PublicKeySubsystemRequestOptions
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemRequestOptions {
readonly namespace?: string;
readonly attributes?: readonly PublicKeySubsystemAttributeInput[];
}PublicKeySubsystemServer
Class. Declared in src/publickey/PublicKeySubsystemServer.ts.
export default class PublicKeySubsystemServer extends EventEmitter<PublicKeySubsystemServerEvents> {
readonly protocolVersion = 3;
readonly stream: Shell;
readonly hooker: Hooker<PublicKeySubsystemServerHooker>;
readonly attributes: readonly Readonly<Required<PublicKeySubsystemSupportedAttribute>>[];
get negotiatedProtocolVersion(): number | undefined;
constructor(stream: Shell, options?: PublicKeySubsystemServerOptions);
destroy(error?: Error): void;
/** Close the subsystem and settle after its SSH channel closes. */
close(): Promise<void>;
[Symbol.asyncDispose](): Promise<void>;
}PublicKeySubsystemServerAddCertificateContext
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerAddCertificateContext {
readonly format: string;
readonly certificate: Buffer;
readonly overwrite: boolean;
readonly namespace: string;
readonly attributes: readonly PublicKeySubsystemAddAttribute[];
}PublicKeySubsystemServerAddContext
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerAddContext {
readonly key: PublicKey;
readonly overwrite: boolean;
readonly attributes: readonly PublicKeySubsystemAddAttribute[];
readonly namespace?: string;
}PublicKeySubsystemServerEvents
Type. Declared in src/publickey/PublicKeySubsystemServer.ts.
export type PublicKeySubsystemServerEvents = {
ready: [
clientVersion: number
];
close: [
];
error: [
error: Error
];
};PublicKeySubsystemServerHooker
Type. Declared in src/publickey/PublicKeySubsystemServer.ts.
export type PublicKeySubsystemServerHooker = {
add: [
context: Readonly<PublicKeySubsystemServerAddContext>,
controller: PublicKeySubsystemServerResponseController,
operation: Readonly<PublicKeySubsystemServerOperationContext>
];
remove: [
context: Readonly<PublicKeySubsystemServerRemoveContext>,
controller: PublicKeySubsystemServerResponseController,
operation: Readonly<PublicKeySubsystemServerOperationContext>
];
list: [
controller: PublicKeySubsystemServerListController,
context: Readonly<PublicKeySubsystemServerListContext>,
operation: Readonly<PublicKeySubsystemServerOperationContext>
];
addCertificate: [
context: Readonly<PublicKeySubsystemServerAddCertificateContext>,
controller: PublicKeySubsystemServerResponseController,
operation: Readonly<PublicKeySubsystemServerOperationContext>
];
removeCertificate: [
context: Readonly<PublicKeySubsystemServerRemoveCertificateContext>,
controller: PublicKeySubsystemServerResponseController,
operation: Readonly<PublicKeySubsystemServerOperationContext>
];
listCertificates: [
controller: PublicKeySubsystemServerListCertificatesController,
operation: Readonly<PublicKeySubsystemServerOperationContext>
];
listNamespaces: [
controller: PublicKeySubsystemServerListNamespacesController,
operation: Readonly<PublicKeySubsystemServerOperationContext>
];
};PublicKeySubsystemServerListCertificatesController
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerListCertificatesController extends PublicKeySubsystemServerResponseController {
certificates?: readonly PublicKeySubsystemServerListedCertificate[];
}PublicKeySubsystemServerListContext
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerListContext {
readonly attributes: readonly PublicKeySubsystemAddAttribute[];
readonly namespace?: string;
}PublicKeySubsystemServerListController
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerListController extends PublicKeySubsystemServerResponseController {
keys?: readonly PublicKeySubsystemServerListedKey[];
}PublicKeySubsystemServerListedAttribute
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerListedAttribute {
readonly name: string;
readonly value: string | Buffer;
}PublicKeySubsystemServerListedCertificate
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerListedCertificate {
readonly format: string;
readonly certificate: Buffer;
readonly namespace: string;
readonly attributes?: readonly PublicKeySubsystemServerListedAttribute[];
}PublicKeySubsystemServerListedKey
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerListedKey {
readonly key: PublicKey;
readonly attributes?: readonly PublicKeySubsystemServerListedAttribute[];
}PublicKeySubsystemServerListNamespacesController
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerListNamespacesController extends PublicKeySubsystemServerResponseController {
namespaces?: readonly string[];
}PublicKeySubsystemServerOperationContext
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerOperationContext {
/** Aborted when this request expires or its subsystem channel closes. */
readonly signal: AbortSignal;
}PublicKeySubsystemServerOptions
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerOptions {
readonly attributes?: readonly PublicKeySubsystemSupportedAttribute[];
/** Integer milliseconds to wait for close. Defaults to 30000; range: 1 through 2147483647. */
readonly closeTimeout?: number;
/**
* Integer milliseconds for initialization, policy, and response writes.
* Defaults to 30000; range: 1 through 2147483647.
*/
readonly requestTimeout?: number;
}PublicKeySubsystemServerRemoveCertificateContext
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerRemoveCertificateContext {
readonly format: string;
readonly certificate: Buffer;
readonly namespace: string;
readonly attributes: readonly PublicKeySubsystemListedAttribute[];
}PublicKeySubsystemServerRemoveContext
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerRemoveContext {
readonly key: PublicKey;
readonly attributes: readonly PublicKeySubsystemAddAttribute[];
readonly namespace?: string;
}PublicKeySubsystemServerResponseController
Interface. Declared in src/publickey/PublicKeySubsystemServer.ts.
export interface PublicKeySubsystemServerResponseController {
success: boolean;
failureCode?: number;
description?: string;
languageTag?: string;
}PublicKeySubsystemStatusCode
Enum. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export declare enum PublicKeySubsystemStatusCode {
Success = 0,
AccessDenied = 1,
StorageExceeded = 2,
VersionNotSupported = 3,
KeyNotFound = 4,
KeyNotSupported = 5,
KeyAlreadyPresent = 6,
GeneralFailure = 7,
RequestNotSupported = 8,
AttributeNotSupported = 9,
CertificateNotFound = 192,
CertificateNotSupported = 193,
CertificateAlreadyPresent = 194,
ActionNotAuthorized = 195,
CannotCreateNamespace = 196
}PublicKeySubsystemStatusError
Class. Declared in src/publickey/PublicKeySubsystemClient.ts.
export declare class PublicKeySubsystemStatusError extends Error {
readonly code: number;
readonly languageTag: string;
constructor(code: number, description: string, languageTag: string);
}PublicKeySubsystemStatusPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemStatusPacket {
readonly type: "status";
readonly code: number;
readonly description: string;
readonly languageTag: string;
}PublicKeySubsystemSupportedAttribute
Interface. Declared in src/publickey/PublicKeySubsystemClient.ts.
export interface PublicKeySubsystemSupportedAttribute {
readonly name: string;
readonly compulsory: boolean;
}PublicKeySubsystemUnknownPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemUnknownPacket {
readonly type: "unknown";
readonly name: string;
readonly data: Buffer;
}PublicKeySubsystemVersionPacket
Interface. Declared in src/publickey/PublicKeySubsystemCodec.ts.
export interface PublicKeySubsystemVersionPacket {
readonly type: "version";
readonly version: number;
}SSHAgent
Class. Declared in src/publickey/SSHAgent.ts.
export default class SSHAgent implements Agent<string> {
type: AgentType;
readonly socketPath: string;
readonly options: Readonly<Required<SSHSocketAgentOptions>>;
constructor(socketPath?: string | undefined, options?: SSHSocketAgentOptions);
sign(id: string, data: Buffer, algorithm?: string): Promise<EncodedSignature>;
getPublicKeys(): Promise<[
string,
PublicKey
][]>;
getPublicKey(id: string): Promise<PublicKey>;
getStream(): Promise<Socket>;
}SSHAgentAddIdentityOptions
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentAddIdentityOptions {
comment?: string;
constraints?: readonly SSHAgentConstraint[];
}SSHAgentAddTokenOptions
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentAddTokenOptions {
constraints?: readonly SSHAgentConstraint[];
}SSHAgentConstraint
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentConstraint = Readonly<{
type: "lifetime";
seconds: number;
}> | Readonly<{
type: "confirm";
}> | Readonly<{
type: "extension";
name: string;
data: Buffer;
}> | OpenSSHAgentSecurityKeyProviderConstraint | OpenSSHAgentKeyConstraint;SSHAgentConstraintType
Enum. Declared in src/publickey/SSHAgentProtocol.ts.
export declare enum SSHAgentConstraintType {
Lifetime = 1,
Confirm = 2,
Extension = 255
}SSHAgentError
Class. Declared in src/publickey/SSHAgent.ts.
export declare class SSHAgentError extends AgentError {
name: string;
}SSHAgentExtensionFailureError
Class. Declared in src/publickey/SSHAgentProtocol.ts.
export declare class SSHAgentExtensionFailureError extends SSHAgentProtocolError {
name: string;
}SSHAgentExtensionResult
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentExtensionResult = Readonly<{
kind: "success";
}> | Readonly<{
kind: "response";
contents: Buffer;
}>;SSHAgentIdentity
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentIdentity {
publicKey: PublicKey;
comment?: string;
}SSHAgentMessageType
Enum. Declared in src/publickey/SSHAgentProtocol.ts.
export declare enum SSHAgentMessageType {
Failure = 5,
Success = 6,
RequestIdentities = 11,
IdentitiesAnswer = 12,
SignRequest = 13,
SignResponse = 14,
AddIdentity = 17,
RemoveIdentity = 18,
RemoveAllIdentities = 19,
AddToken = 20,
RemoveToken = 21,
Lock = 22,
Unlock = 23,
AddConstrainedIdentity = 25,
AddConstrainedToken = 26,
Extension = 27,
ExtensionFailure = 28,
ExtensionResponse = 29
}SSHAgentProtocolClient
Class. Declared in src/publickey/SSHAgentProtocol.ts.
/** A Promise-based client for one already-connected agent protocol stream. */
export declare class SSHAgentProtocolClient extends Agent<string> {
readonly type = AgentType.NonInteractive;
readonly stream: Duplex;
readonly options: Readonly<Required<SSHAgentProtocolOptions>>;
constructor(stream: Duplex, options?: SSHAgentProtocolOptions);
getPublicKeys(): Promise<[
string,
PublicKey
][]>;
getPublicKey(id: string): Promise<PublicKey>;
sign(id: string, data: Buffer, algorithm?: string): Promise<EncodedSignature>;
addIdentity(privateKey: PrivateKey, options?: SSHAgentAddIdentityOptions): Promise<void>;
addToken(tokenId: string | Buffer, pin?: string | Buffer, options?: SSHAgentAddTokenOptions): Promise<void>;
removeIdentity(publicKey: PublicKey): Promise<void>;
removeAllIdentities(): Promise<void>;
removeToken(tokenId: string, pin?: string | Buffer): Promise<void>;
lock(passphrase: string | Buffer): Promise<void>;
unlock(passphrase: string | Buffer): Promise<void>;
extension(type: string, contents?: Buffer): Promise<SSHAgentExtensionResult>;
queryExtensions(): Promise<readonly string[]>;
opensshSessionBind(binding: OpenSSHAgentSessionBinding): Promise<void>;
/**
* Drain operations already queued, stop accepting requests, and await stream closure.
*/
close(): Promise<void>;
[Symbol.asyncDispose](): Promise<void>;
destroy(error?: Error): void;
}SSHAgentProtocolConnectionContext
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentProtocolConnectionContext {
/** The stream supplied to serve(); use object identity to associate application state. */
readonly stream: Duplex;
/** True after any session-bind request, including a malformed or refused one. */
readonly sessionBindAttempted: boolean;
/** Accepted bindings in forwarding-path order. */
readonly sessionBindings: readonly OpenSSHAgentSessionBinding[];
/** Aborted when this served stream closes or its request deadline expires. */
readonly signal: AbortSignal;
}SSHAgentProtocolError
Class. Declared in src/publickey/SSHAgentProtocol.ts.
export declare class SSHAgentProtocolError extends AgentError {
name: string;
}SSHAgentProtocolOptions
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentProtocolOptions {
/** Maximum payload length accepted from the peer. */
maxMessageLength?: number;
/** Maximum milliseconds for a client request. Zero disables the deadline. */
requestTimeout?: number;
}SSHAgentProtocolServer
Class. Declared in src/publickey/SSHAgentProtocol.ts.
/** An awaited, deny-by-default agent protocol endpoint for a Duplex stream. */
export declare class SSHAgentProtocolServer {
readonly hooker: Hooker<SSHAgentServerHooker>;
readonly options: Readonly<Required<SSHAgentProtocolServerOptions>>;
constructor(options?: SSHAgentProtocolServerOptions);
get locked(): boolean;
serve(stream: Duplex): Promise<void>;
}SSHAgentProtocolServerOptions
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentProtocolServerOptions {
/** Maximum payload length accepted from the peer or returned by policy. */
maxMessageLength?: number;
/** Maximum milliseconds for queueing, awaited policy, and response writes. */
requestTimeout?: number;
}SSHAgentServerAddIdentityContext
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerAddIdentityContext = Readonly<{
privateKey: PrivateKey;
comment: string;
constraints: readonly SSHAgentConstraint[];
}>;SSHAgentServerAddTokenContext
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerAddTokenContext = Readonly<{
/** Opaque token identifier copied from the request. */
tokenId: Buffer;
/** Ephemeral PIN bytes. Do not retain this buffer after the hook returns. */
pin: Buffer;
constraints: readonly SSHAgentConstraint[];
}>;SSHAgentServerExtensionContext
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerExtensionContext = Readonly<{
type: string;
contents: Buffer;
}>;SSHAgentServerExtensionController
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentServerExtensionController {
/** Undefined means the extension is unsupported and returns SSH_AGENT_FAILURE. */
result: SSHAgentServerExtensionResult | undefined;
}SSHAgentServerExtensionResult
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerExtensionResult = SSHAgentExtensionResult | Readonly<{
kind: "failure";
}>;SSHAgentServerHooker
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerHooker = {
identities: [
controller: SSHAgentServerIdentitiesController,
connection: SSHAgentProtocolConnectionContext
];
sign: [
context: SSHAgentServerSignContext,
controller: SSHAgentServerSignController,
connection: SSHAgentProtocolConnectionContext
];
addIdentity: [
context: SSHAgentServerAddIdentityContext,
controller: SSHAgentServerSuccessController,
connection: SSHAgentProtocolConnectionContext
];
addToken: [
context: SSHAgentServerAddTokenContext,
controller: SSHAgentServerSuccessController,
connection: SSHAgentProtocolConnectionContext
];
removeIdentity: [
context: SSHAgentServerRemoveIdentityContext,
controller: SSHAgentServerSuccessController,
connection: SSHAgentProtocolConnectionContext
];
removeAllIdentities: [
controller: SSHAgentServerSuccessController,
connection: SSHAgentProtocolConnectionContext
];
removeToken: [
context: SSHAgentServerRemoveTokenContext,
controller: SSHAgentServerSuccessController,
connection: SSHAgentProtocolConnectionContext
];
lock: [
context: SSHAgentServerPassphraseContext,
controller: SSHAgentServerSuccessController,
connection: SSHAgentProtocolConnectionContext
];
unlock: [
context: SSHAgentServerPassphraseContext,
controller: SSHAgentServerSuccessController,
connection: SSHAgentProtocolConnectionContext
];
extension: [
context: SSHAgentServerExtensionContext,
controller: SSHAgentServerExtensionController,
connection: SSHAgentProtocolConnectionContext
];
queryExtensions: [
controller: SSHAgentServerQueryExtensionsController,
connection: SSHAgentProtocolConnectionContext
];
sessionBind: [
binding: OpenSSHAgentSessionBinding,
controller: SSHAgentServerSuccessController,
connection: SSHAgentProtocolConnectionContext
];
};SSHAgentServerIdentitiesController
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentServerIdentitiesController {
/** Leave undefined to deny the request with SSH_AGENT_FAILURE. */
identities: readonly Readonly<SSHAgentIdentity>[] | undefined;
}SSHAgentServerPassphraseContext
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerPassphraseContext = Readonly<{
/** Ephemeral passphrase bytes. Do not retain this buffer after the hook returns. */
passphrase: Buffer;
}>;SSHAgentServerQueryExtensionsController
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentServerQueryExtensionsController {
/** Undefined means the query extension is unsupported. */
extensions: readonly string[] | undefined;
}SSHAgentServerRemoveIdentityContext
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerRemoveIdentityContext = Readonly<{
publicKey: PublicKey;
}>;SSHAgentServerRemoveTokenContext
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerRemoveTokenContext = Readonly<{
tokenId: string;
/** Ephemeral UTF-8 PIN bytes. Do not retain this buffer after the hook returns. */
pin: Buffer;
}>;SSHAgentServerSignContext
Type. Declared in src/publickey/SSHAgentProtocol.ts.
export type SSHAgentServerSignContext = Readonly<{
publicKey: PublicKey;
data: Buffer;
/** Exact signature algorithm requested by the agent protocol flags. */
algorithm: string;
flags: number;
}>;SSHAgentServerSignController
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentServerSignController {
/** Leave undefined to deny the request with SSH_AGENT_FAILURE. */
signature: EncodedSignature | undefined;
}SSHAgentServerSuccessController
Interface. Declared in src/publickey/SSHAgentProtocol.ts.
export interface SSHAgentServerSuccessController {
/** Set to true to accept the request. Undefined and false deny it. */
success: boolean | undefined;
}SSHSocketAgentOptions
Interface. Declared in src/publickey/SSHAgent.ts.
export interface SSHSocketAgentOptions {
/** Maximum socket inactivity in milliseconds while connecting or exchanging a request. */
timeout?: number;
}