UNPKG

ts-onvif

Version:

Client to ONVIF devices

332 lines (331 loc) 15.3 kB
/** * 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>; }