ts-onvif
Version:
Client to ONVIF devices
332 lines (331 loc) • 15.3 kB
TypeScript
/**
* AdvancedSecurity ver10 module
* @author Andrew D.Laptev <a.d.laptev@gmail.com>
* @see https://www.onvif.org/ver10/advancedsecurity/wsdl/advancedsecurity.wsdl
*/
import { Onvif } from './onvif';
import Service from './service';
import { AddCertPathValidationPolicyAssignment, AddDot1XConfiguration, AddMediaSigningCertificateAssignment, AddServerCertificateAssignment, Capabilities, CreateAuthorizationServerConfiguration, CreateAuthorizationServerConfigurationResponse, CreateCertPathValidationPolicy, CreateCertPathValidationPolicyResponse, CreateCertificationPath, CreateCertificationPathResponse, CreateECCKeyPair, CreateECCKeyPairResponse, CreatePKCS10CSR, CreatePKCS10CSRResponse, CreateRSAKeyPair, CreateRSAKeyPairResponse, CreateSelfSignedCertificate, CreateSelfSignedCertificateResponse, DeleteAuthorizationServerConfiguration, DeleteCertificate, DeleteCertPathValidationPolicy, DeleteCertificationPath, DeleteCRL, DeleteDot1XConfiguration, DeleteKey, DeleteNetworkInterfaceDot1XConfiguration, DeleteNetworkInterfaceDot1XConfigurationResponse, DeletePassphrase, GetAllCertificatesResponse, GetAllCertificationPathsResponse, GetAllCertPathValidationPoliciesResponse, GetAllCRLsResponse, GetAllDot1XConfigurationsResponse, GetAllKeysResponse, GetAllPassphrasesResponse, GetAssignedCertPathValidationPoliciesResponse, GetAssignedMediaSigningCertificatesResponse, GetAssignedServerCertificatesResponse, GetAuthorizationServerConfigurations, GetAuthorizationServerConfigurationsResponse, GetCertificate, GetCertificateResponse, GetCertificationPath, GetCertificationPathResponse, GetCertPathValidationPolicy, GetCertPathValidationPolicyResponse, GetClientAuthenticationRequiredResponse, GetCnMapsToUserResponse, GetCRL, GetCRLResponse, GetDot1XConfiguration, GetDot1XConfigurationResponse, GetEnabledTLSVersionsResponse, GetJWTConfigurationResponse, GetKeyStatus, GetNetworkInterfaceDot1XConfiguration, GetNetworkInterfaceDot1XConfigurationResponse, GetPrivateKeyStatus, RemoveCertPathValidationPolicyAssignment, RemoveMediaSigningCertificateAssignment, RemoveServerCertificateAssignment, ReplaceCertPathValidationPolicyAssignment, ReplaceServerCertificateAssignment, SetAuthorizationServerConfiguration, SetCertPathValidationPolicy, SetCertificationPath, SetClientAuthenticationRequired, SetCnMapsToUser, SetEnabledTLSVersions, SetJWTConfiguration, SetNetworkInterfaceDot1XConfiguration, SetNetworkInterfaceDot1XConfigurationResponse, UploadCertificate, UploadCertificateResponse, UploadCertificateWithPrivateKeyInPKCS12, UploadCertificateWithPrivateKeyInPKCS12Response, UploadCRL, UploadCRLResponse, UploadKeyPairInPKCS8, UploadKeyPairInPKCS8Response, UploadPassphrase, UploadPassphraseResponse, AddDot1XConfigurationResponse } from './interfaces/advancedsecurity';
/**
* AdvancedSecurity service
* @example
* ```ts
* const caps = await cam.advancedSecurity.getServiceCapabilities();
* const keys = await cam.advancedSecurity.getAllKeys();
* console.log(caps.keystoreCapabilities, keys);
* ```
*/
export default class AdvancedSecurity extends Service {
constructor(onvif: Onvif);
private static dnAttributeToBuild;
private static multiValuedRDNToBuild;
private static distinguishedNameToBuild;
private static algorithmIdentifierToBuild;
private static x509v3ExtensionToBuild;
private static certificateIDsToBuild;
private static certificationPathToBuild;
private static certPathValidationParametersToBuild;
private static trustAnchorToBuild;
private static certPathValidationPolicyToBuild;
private static customClaimToBuild;
private static jwtConfigurationToBuild;
private static dot1XStageToBuild;
private static dot1XConfigurationToBuild;
private static authorizationServerConfigurationDataToBuild;
private static authorizationServerConfigurationToBuild;
/**
* Returns the capabilities of the advanced security service.
*/
getServiceCapabilities(): Promise<Capabilities>;
/**
* Returns the JWT configuration.
*/
getJWTConfiguration(): Promise<GetJWTConfigurationResponse['configuration']>;
/**
* Sets the JWT configuration.
* @param options
*/
setJWTConfiguration({ configuration }: SetJWTConfiguration): Promise<void>;
/**
* Creates an RSA key pair.
* @param options
*/
createRSAKeyPair(options: CreateRSAKeyPair): Promise<CreateRSAKeyPairResponse>;
/**
* Creates an ECC key pair.
* @param options
*/
createECCKeyPair(options: CreateECCKeyPair): Promise<CreateECCKeyPairResponse>;
/**
* Uploads a key pair in PKCS#8 format.
* @param options
*/
uploadKeyPairInPKCS8(options: UploadKeyPairInPKCS8): Promise<UploadKeyPairInPKCS8Response['keyID']>;
/**
* Uploads a certificate with private key in PKCS#12 format.
* @param options
*/
uploadCertificateWithPrivateKeyInPKCS12(options: UploadCertificateWithPrivateKeyInPKCS12): Promise<UploadCertificateWithPrivateKeyInPKCS12Response>;
/**
* Returns the status of a key.
* @param options
*/
getKeyStatus({ keyID }: GetKeyStatus): Promise<string>;
/**
* Returns whether a key pair contains a private key.
* @param options
*/
getPrivateKeyStatus({ keyID }: GetPrivateKeyStatus): Promise<boolean>;
/**
* Returns information about all keys in the keystore.
*/
getAllKeys(): Promise<GetAllKeysResponse['keyAttribute']>;
/**
* Deletes a key from the keystore.
* @param options
*/
deleteKey({ keyID }: DeleteKey): Promise<void>;
/**
* Creates a PKCS#10 certificate signing request.
* @param options
*/
createPKCS10CSR(options: CreatePKCS10CSR): Promise<CreatePKCS10CSRResponse['PKCS10CSR']>;
/**
* Creates a self-signed certificate.
* @param options
*/
createSelfSignedCertificate(options: CreateSelfSignedCertificate): Promise<CreateSelfSignedCertificateResponse['certificateID']>;
/**
* Uploads an X.509 certificate.
* @param options
*/
uploadCertificate(options: UploadCertificate): Promise<UploadCertificateResponse>;
/**
* Returns a certificate by ID.
* @param options
*/
getCertificate({ certificateID }: GetCertificate): Promise<GetCertificateResponse['certificate']>;
/**
* Returns all certificates in the keystore.
*/
getAllCertificates(): Promise<GetAllCertificatesResponse['certificate']>;
/**
* Deletes a certificate from the keystore.
* @param options
*/
deleteCertificate({ certificateID }: DeleteCertificate): Promise<void>;
/**
* Creates a certification path.
* @param options
*/
createCertificationPath(options: CreateCertificationPath): Promise<CreateCertificationPathResponse['certificationPathID']>;
/**
* Returns a certification path by ID.
* @param options
*/
getCertificationPath({ certificationPathID, }: GetCertificationPath): Promise<GetCertificationPathResponse['certificationPath']>;
/**
* Returns IDs of all certification paths.
*/
getAllCertificationPaths(): Promise<GetAllCertificationPathsResponse['certificationPathID']>;
/**
* Updates a certification path.
* @param options
*/
setCertificationPath(options: SetCertificationPath): Promise<void>;
/**
* Deletes a certification path.
* @param options
*/
deleteCertificationPath({ certificationPathID }: DeleteCertificationPath): Promise<void>;
/**
* Uploads a passphrase.
* @param options
*/
uploadPassphrase(options: UploadPassphrase): Promise<UploadPassphraseResponse['passphraseID']>;
/**
* Returns all passphrases in the keystore.
*/
getAllPassphrases(): Promise<GetAllPassphrasesResponse['passphraseAttribute']>;
/**
* Deletes a passphrase.
* @param options
*/
deletePassphrase({ passphraseID }: DeletePassphrase): Promise<void>;
/**
* Uploads a CRL.
* @param options
*/
uploadCRL(options: UploadCRL): Promise<UploadCRLResponse['crlID']>;
/**
* Returns a CRL by ID.
* @param options
*/
getCRL({ crlID }: GetCRL): Promise<GetCRLResponse['crl']>;
/**
* Returns all CRLs in the keystore.
*/
getAllCRLs(): Promise<GetAllCRLsResponse['crl']>;
/**
* Deletes a CRL.
* @param options
*/
deleteCRL({ crlID }: DeleteCRL): Promise<void>;
/**
* Creates a certification path validation policy.
* @param options
*/
createCertPathValidationPolicy(options: CreateCertPathValidationPolicy): Promise<CreateCertPathValidationPolicyResponse['certPathValidationPolicyID']>;
/**
* Returns a certification path validation policy by ID.
* @param options
*/
getCertPathValidationPolicy({ certPathValidationPolicyID, }: GetCertPathValidationPolicy): Promise<GetCertPathValidationPolicyResponse['certPathValidationPolicy']>;
/**
* Returns all certification path validation policies.
*/
getAllCertPathValidationPolicies(): Promise<GetAllCertPathValidationPoliciesResponse['certPathValidationPolicy']>;
/**
* Updates a certification path validation policy.
* @param options
*/
setCertPathValidationPolicy(options: SetCertPathValidationPolicy): Promise<void>;
/**
* Deletes a certification path validation policy.
* @param options
*/
deleteCertPathValidationPolicy({ certPathValidationPolicyID }: DeleteCertPathValidationPolicy): Promise<void>;
/**
* Assigns a certification path to the TLS server.
* @param options
*/
addServerCertificateAssignment({ certificationPathID }: AddServerCertificateAssignment): Promise<void>;
/**
* Removes a TLS server certificate assignment.
* @param options
*/
removeServerCertificateAssignment({ certificationPathID }: RemoveServerCertificateAssignment): Promise<void>;
/**
* Replaces a TLS server certificate assignment.
* @param options
*/
replaceServerCertificateAssignment(options: ReplaceServerCertificateAssignment): Promise<void>;
/**
* Returns certification paths assigned to the TLS server.
*/
getAssignedServerCertificates(): Promise<GetAssignedServerCertificatesResponse['certificationPathID']>;
/**
* Sets enabled TLS versions.
* @param options
*/
setEnabledTLSVersions({ versions }: SetEnabledTLSVersions): Promise<void>;
/**
* Returns enabled TLS versions.
*/
getEnabledTLSVersions(): Promise<GetEnabledTLSVersionsResponse['versions']>;
/**
* Sets whether client authentication is required.
* @param options
*/
setClientAuthenticationRequired({ clientAuthenticationRequired, }: SetClientAuthenticationRequired): Promise<void>;
/**
* Returns whether client authentication is required.
*/
getClientAuthenticationRequired(): Promise<GetClientAuthenticationRequiredResponse['clientAuthenticationRequired']>;
/**
* Sets whether CN maps to a local user.
* @param options
*/
setCnMapsToUser({ cnMapsToUser }: SetCnMapsToUser): Promise<void>;
/**
* Returns whether CN maps to a local user.
*/
getCnMapsToUser(): Promise<GetCnMapsToUserResponse['cnMapsToUser']>;
/**
* Assigns a certification path validation policy to the TLS server.
* @param options
*/
addCertPathValidationPolicyAssignment({ certPathValidationPolicyID, }: AddCertPathValidationPolicyAssignment): Promise<void>;
/**
* Removes a certification path validation policy assignment.
* @param options
*/
removeCertPathValidationPolicyAssignment({ certPathValidationPolicyID, }: RemoveCertPathValidationPolicyAssignment): Promise<void>;
/**
* Replaces a certification path validation policy assignment.
* @param options
*/
replaceCertPathValidationPolicyAssignment(options: ReplaceCertPathValidationPolicyAssignment): Promise<void>;
/**
* Returns assigned certification path validation policies.
*/
getAssignedCertPathValidationPolicies(): Promise<GetAssignedCertPathValidationPoliciesResponse['certPathValidationPolicyID']>;
/**
* Adds an 802.1X configuration.
* @param options
*/
addDot1XConfiguration({ dot1XConfiguration, }: AddDot1XConfiguration): Promise<AddDot1XConfigurationResponse['dot1XID']>;
/**
* Returns all 802.1X configurations.
*/
getAllDot1XConfigurations(): Promise<GetAllDot1XConfigurationsResponse['configuration']>;
/**
* Returns an 802.1X configuration by ID.
* @param options
*/
getDot1XConfiguration({ dot1XID, }: GetDot1XConfiguration): Promise<GetDot1XConfigurationResponse['dot1XConfiguration']>;
/**
* Deletes an 802.1X configuration.
* @param options
*/
deleteDot1XConfiguration({ dot1XID }: DeleteDot1XConfiguration): Promise<void>;
/**
* Assigns an 802.1X configuration to a network interface.
* @param options
*/
setNetworkInterfaceDot1XConfiguration(options: SetNetworkInterfaceDot1XConfiguration): Promise<SetNetworkInterfaceDot1XConfigurationResponse['rebootNeeded']>;
/**
* Returns the 802.1X configuration assigned to a network interface.
* @param options
*/
getNetworkInterfaceDot1XConfiguration({ token, }: GetNetworkInterfaceDot1XConfiguration): Promise<GetNetworkInterfaceDot1XConfigurationResponse['dot1XID']>;
/**
* Removes the 802.1X configuration from a network interface.
* @param options
*/
deleteNetworkInterfaceDot1XConfiguration({ token, }: DeleteNetworkInterfaceDot1XConfiguration): Promise<DeleteNetworkInterfaceDot1XConfigurationResponse['rebootNeeded']>;
/**
* Assigns a certification path for media signing.
* @param options
*/
addMediaSigningCertificateAssignment({ certificationPathID, }: AddMediaSigningCertificateAssignment): Promise<void>;
/**
* Removes a media signing certificate assignment.
* @param options
*/
removeMediaSigningCertificateAssignment({ certificationPathID, }: RemoveMediaSigningCertificateAssignment): Promise<void>;
/**
* Returns certification paths assigned for media signing.
*/
getAssignedMediaSigningCertificates(): Promise<GetAssignedMediaSigningCertificatesResponse['certificationPathID']>;
/**
* Returns authorization server configurations.
* @param options
*/
getAuthorizationServerConfigurations(options?: GetAuthorizationServerConfigurations): Promise<GetAuthorizationServerConfigurationsResponse['configuration']>;
/**
* Creates an authorization server configuration.
* @param options
*/
createAuthorizationServerConfiguration({ configuration, }: CreateAuthorizationServerConfiguration): Promise<CreateAuthorizationServerConfigurationResponse['token']>;
/**
* Updates an authorization server configuration.
* @param options
*/
setAuthorizationServerConfiguration({ configuration }: SetAuthorizationServerConfiguration): Promise<void>;
/**
* Deletes an authorization server configuration.
* @param options
*/
deleteAuthorizationServerConfiguration({ token }: DeleteAuthorizationServerConfiguration): Promise<void>;
}