KMIPServer Component
Properties Methods Events Config Settings Errors
The KMIPServer component provides server-side functionality for Key Management Interoperability Protocol (KMIP).
Syntax
nsoftware.SecureBlackbox.KMIPServer
Remarks
The Key Management Interoperability Protocol (KMIP) is an OASIS standard for communication between key management servers and clients. KMIP servers are typically responsible for managing cryptographic keys and providing access to them to remote client applications.
Property List
The following is the full list of the properties of the component with short descriptions. Click on the links for further details.
Active | Indicates if the KMIP server is active and listening to incoming connections. |
AllowKeepAlive | Enables or disables keep-alive mode. |
AuthRealm | Specifies authentication realm for digest and NTLM authentication. |
AuthTypes | Defines allowed HTTP authentication types. |
BoundPort | Indicates the bound listening port. |
CACertificate | The default CA certificate. |
Certificate | Contains the certificate that has just been generated or added. |
CompressionLevel | The default compression level to use. |
ExternalCrypto | Provides access to external signing and DC parameters. |
FIPSMode | Reserved. |
HandshakeTimeout | Specifies the handshake timeout in milliseconds. |
Host | Specifies the host name of the KMIP server. |
Key | Contains the key that has just been generated or added. |
PinnedClient | Populates the pinned client details. |
PinnedClientChain | Contains the certificate chain of the pinned client. |
Port | A port to listen for connections on. |
ReadOnly | Controls whether the server works in read-only mode. |
SessionTimeout | Specifies the default session timeout value in milliseconds. |
SocketSettings | Manages network connection settings. |
StorageFileName | A path to the KMIP object database. |
TLSServerChain | The server's TLS certificates. |
TLSSettings | Manages TLS layer settings. |
UseChunkedTransfer | Enables chunked transfer. |
UseCompression | Enables or disables server-side compression. |
UseHTTP | Specifies whether the server should use HTTP instead of KMIP-over-TCP/TLS. |
Users | A database of registered users. |
Method List
The following is the full list of the methods of the component with short descriptions. Click on the links for further details.
Cleanup | Cleans up the server environment by purging expired sessions and cleaning caches. |
Config | Sets or retrieves a configuration setting. |
DoAction | Performs an additional action. |
DropClient | Terminates a client connection. |
GetClientCert | Populates the per-connection certificate object. |
GetClientKey | Populates the per-connection key object. |
GetRequestHeader | Returns a request header value. |
GetResponseHeader | Returns a response header value. |
ListClients | Enumerates the connected clients. |
PinClient | Takes a snapshot of the connection's properties. |
ProcessGenericRequest | Processes a generic HTTP request. |
Reset | Resets the component settings. |
SetClientBytes | Commits a data buffer to the connection. |
SetClientCert | Commits the per-connection certificate object to the connection context. |
SetClientKey | Commits the per-connection key object to the connection context. |
SetResponseHeader | Sets a response header. |
Start | Start the KMIP server. |
Stop | Stops the KMIP server. |
Event List
The following is the full list of the events fired by the component with short descriptions. Click on the links for further details.
Accept | Reports an incoming connection. |
ActivateObject | Notifies the application about the object activation request. |
Add | Passes the certificate import request to the application. |
AddKey | Expects the application to handle the key import request. |
AfterAdd | Notifies the application about completion of the certificate import operation. |
AfterAddKey | Reports the completion of the key import procedure. |
AfterBrowse | KMIP server uses this event to notify the application about the completion of the browsing (attribute request) operation. |
AfterDecrypt | Notifies the application about completion of the decryption call. |
AfterDeriveKey | Notifies the application about completion of the key derivation request. |
AfterEdit | Notifies the application of completion of the object editing operation. |
AfterEncrypt | Notifies the application about the completion of the encryption call. |
AfterGenerate | Signifies completion of certificate generation. |
AfterGenerateKey | Notifies the application of the completion of key generation procedure. |
AfterGenerateKeyPair | Notifies the application of the completion of keypair generation. |
AfterHash | Notifies the application about completion of the hashing call. |
AfterList | Notifies the application about completion of the list command. |
AfterObtainLease | Reports the completion of lease allocation operation. |
AfterReadObject | Notifies the application of the completion of the read operation on the object. |
AfterReCertify | Notifies the application about the completion of the re-certify operation. |
AfterReKey | Notifies the application about the completion of the re-key operation. |
AfterRekeyKeyPair | Notifies the application about the completion of the re-key keypair operation. |
AfterRemoveObject | Notifies the application about completion of the object removal request. |
AfterSign | Notifies the application of completion of a signing operation. |
AfterVerify | Notifies the application about completion of the Verify operation. |
AfterVerifyHash | Notifies the application about completion of the hash verification. |
ArchiveObject | Notifies the application about the received object archival request. |
AuthAttempt | Fires when a connected client makes an authentication attempt. |
BeforeAdd | Fires when a certificate import request is received from a client. |
BeforeAddKey | Fires when a key import request is received from the client. |
BeforeBrowse | Notifies the application about the browse request being received. |
BeforeDecrypt | Notifies the application about the initiation of the decryption operation. |
BeforeDeriveKey | Fires when a derive key request is received. |
BeforeEdit | Notifies the application about the start of the object editing operation. |
BeforeEncrypt | Notifies the application about the initiation of an encryption operation. |
BeforeGenerate | Fires when a certificate generation request is received. |
BeforeGenerateKey | Fires when a key generation request is received. |
BeforeGenerateKeyPair | Fires when a key generation request is received. |
BeforeHash | Notifies the application about the initiation of the hashing operation. |
BeforeList | Notifies the application about the initiation of the list operation. |
BeforeObtainLease | Notifies the application about the client requesting an object lease. |
BeforeReadObject | Notifies the application about the start of the object reading request. |
BeforeReCertify | Notifies the application about a re-certification request. |
BeforeReKey | Notifies the application about a re-key request received. |
BeforeRekeyKeyPair | Notifies the application about a keypair re-key request received. |
BeforeRemoveObject | Notifies the application about an incoming Remove Object request. |
BeforeSign | Notifies the application about the initiation of a signing operation. |
BeforeVerify | Notifies the application about the initiation of the verify operation. |
BeforeVerifyHash | Notifies the application about the initiation of the hash verification operation. |
Cancel | Reports a cancellation request received from the client. |
Check | Notifies the application about a Check request received. |
Connect | Reports an accepted connection. |
Decrypt | Instructs the application to decrypt a chunk of data. |
DeleteAttribute | Instructs the application to delete an object attribute. |
DeriveKey | Notifies the application of key derivation request. |
Disconnect | Fires to report a disconnected client. |
Encrypt | Instructs the application to encrypt a chunk of data. |
Error | Information about errors during data delivery. |
ExternalSign | Handles remote or external signing initiated by the server protocol. |
Generate | Notifies the application about an incoming Generate request. |
GenerateKey | Notifies the application about an incoming Generate request. |
GenerateKeyPair | Notifies the application about an incoming Generate request. |
GetUsageAllocation | Notifies the application about an incoming Get Usage Allocation request. |
Hash | Instructs the application to update the current hashing operation. |
HeadersPrepared | Fires when the response headers have been formed and are ready to be sent to the server. |
KMIPAuthAttempt | Fires when a connected client makes an authentication attempt. |
List | Instructs the application to return the list of objects that match the specified criteria. |
ListAttributes | Requests a list of object attribute names from the application. |
Notification | This event notifies the application about an underlying control flow event. |
ObtainLease | Lets the application handle the lease request. |
OperationAttempt | Fires when a request is received from the client. |
Poll | Notifies the application about the received Poll request. |
ReadAttribute | Requests an object attribute value from the application. |
ReadObject | Requests the details of the object from the application. |
ReCertify | Notifies the application about an incoming re-certification request. |
RecoverObject | Notifies the application about an incoming Recover Object request. |
ReKey | Notifies the application about an incoming re-key request. |
RekeyKeyPair | Notifies the application about an incoming re-key request. |
RemoveObject | Notifies the application about the object deletion request. |
Request | Notifies the application about KMIP requests being received. |
Response | Notifies the application about KMIP responses being sent back. |
RevokeObject | Instructs the application to revoke an object. |
RNGGenerate | Asks the application for another block of random numbers. |
RNGSeed | Tells the application to seed the random number generator. |
SetAttribute | Passes a set-attribute request to the application. |
Sign | Instructs the application to sign data with a private key. |
TLSCertValidate | Fires when a client certificate needs to be validated. |
TLSEstablished | Reports the setup of a TLS session. |
TLSHandshake | Fires when a newly established client connection initiates a TLS handshake. |
TLSPSK | Requests a pre-shared key for TLS-PSK. |
TLSShutdown | Reports closure of a TLS session. |
ValidateChain | Passes the chain validation request to the application. |
Verify | KMIPServer fires this event to notify the application about a verification operation request, and expects the application to perform it. |
VerifyHash | Delegates the hash verification operation to a custom handler. |
Config Settings
The following is a list of config settings for the component with short descriptions. Click on the links for further details.
AllowKeepAlive | Enables or disables keep-alive mode. |
AllowOptionsResponseWithoutAuth | Enables unauthenticated responses to OPTIONS requests. |
AuthBasic | Turns on/off the basic authentication. |
AuthDigest | Turns on/off the digest authentication. |
AuthDigestExpire | Specifies digest expiration time for digest authentication. |
AuthRealm | Specifies authentication realm for digest and NTLM authentication. |
CompressionLevel | The default compression level to use. |
DualStack | Allows the use of ip4 and ip6 simultaneously. |
HomePage | Specifies the home page resource name. |
MajorProtocolVersion | Major protocol version on the KMIP server. |
MinorProtocolVersion | Minor protocol version on the KMIP server. |
RequestFilter | The request string modifier. |
SSLMode | Whether to establish a TLS-secured connection. |
UseChunkedTransfer | Whether to use chunked encoding of the data. |
UseChunkedTransfer | Enables chunked transfer. |
UseCompression | Whether to use GZip compression. |
UseCompression | Enables or disables server-side compression. |
ASN1UseGlobalTagCache | Controls whether ASN.1 module should use a global object cache. |
AssignSystemSmartCardPins | Specifies whether CSP-level PINs should be assigned to CNG keys. |
CheckKeyIntegrityBeforeUse | Enables or disable private key integrity check before use. |
CookieCaching | Specifies whether a cookie cache should be used for HTTP(S) transports. |
Cookies | Gets or sets local cookies for the component. |
DefDeriveKeyIterations | Specifies the default key derivation algorithm iteration count. |
DNSLocalSuffix | The suffix to assign for TLD names. |
EnableClientSideSSLFFDHE | Enables or disables finite field DHE key exchange support in TLS clients. |
GlobalCookies | Gets or sets global cookies for all the HTTP transports. |
HardwareCryptoUsePolicy | The hardware crypto usage policy. |
HttpUserAgent | Specifies the user agent name to be used by all HTTP clients. |
HttpVersion | The HTTP version to use in any inner HTTP client components created. |
IgnoreExpiredMSCTLSigningCert | Whether to tolerate the expired Windows Update signing certificate. |
ListDelimiter | The delimiter character for multi-element lists. |
LogDestination | Specifies the debug log destination. |
LogDetails | Specifies the debug log details to dump. |
LogFile | Specifies the debug log filename. |
LogFilters | Specifies the debug log filters. |
LogFlushMode | Specifies the log flush mode. |
LogLevel | Specifies the debug log level. |
LogMaxEventCount | Specifies the maximum number of events to cache before further action is taken. |
LogRotationMode | Specifies the log rotation mode. |
MaxASN1BufferLength | Specifies the maximal allowed length for ASN.1 primitive tag data. |
MaxASN1TreeDepth | Specifies the maximal depth for processed ASN.1 trees. |
OCSPHashAlgorithm | Specifies the hash algorithm to be used to identify certificates in OCSP requests. |
OldClientSideRSAFallback | Specifies whether the SSH client should use a SHA1 fallback. |
ProductVersion | Returns the version of the SecureBlackbox library. |
ServerSSLDHKeyLength | Sets the size of the TLS DHE key exchange group. |
StaticDNS | Specifies whether static DNS rules should be used. |
StaticIPAddress[domain] | Gets or sets an IP address for the specified domain name. |
StaticIPAddresses | Gets or sets all the static DNS rules. |
Tag | Allows to store any custom data. |
TLSSessionGroup | Specifies the group name of TLS sessions to be used for session resumption. |
TLSSessionLifetime | Specifies lifetime in seconds of the cached TLS session. |
TLSSessionPurgeInterval | Specifies how often the session cache should remove the expired TLS sessions. |
UseInternalRandom | Switches between SecureBlackbox-own and platform PRNGs. |
UseLegacyAdESValidation | Enables legacy AdES validation mode. |
UseOwnDNSResolver | Specifies whether the client components should use own DNS resolver. |
UseSharedSystemStorages | Specifies whether the validation engine should use a global per-process copy of the system certificate stores. |
UseSystemNativeSizeCalculation | An internal CryptoAPI access tweak. |
UseSystemOAEPAndPSS | Enforces or disables the use of system-driven RSA OAEP and PSS computations. |
UseSystemRandom | Enables or disables the use of the OS PRNG. |
Active Property (KMIPServer Component)
Indicates if the KMIP server is active and listening to incoming connections.
Syntax
Default Value
False
Remarks
Check this property to find out if the KMIP server is in an active state. Use Start and Stop methods to launch and stop the server.
This property is read-only and not available at design time.
AllowKeepAlive Property (KMIPServer Component)
Enables or disables keep-alive mode.
Syntax
Default Value
True
Remarks
Use this property to enable or disable the keep-alive connection mode. If keep-alive is enabled, clients that choose to use it may stay connected for a while.
AuthRealm Property (KMIPServer Component)
Specifies authentication realm for digest and NTLM authentication.
Syntax
Default Value
"SecureBlackbox"
Remarks
Specifies authentication realm for digest and NTLM authentication types.
AuthTypes Property (KMIPServer Component)
Defines allowed HTTP authentication types.
Syntax
Default Value
0
Remarks
Use this property to define which authentication types the component should support or attempt to use by enabling the relevant bitmask flags:
haBasic | 0x01 | Basic authentication |
haDigest | 0x02 | Digest authentication (RFC 2617) |
haNTLM | 0x04 | Windows NTLM authentication |
haKerberos | 0x08 | Kerberos (Negotiate) authentication |
haOAuth2 | 0x10 | OAuth2 authentication |
BoundPort Property (KMIPServer Component)
Indicates the bound listening port.
Syntax
Default Value
0
Remarks
Check this property to find out the port that has been allocated to the server by the system. The bound port always equals Port if it is provided, or is allocated dynamically if configured to fall in the range between PortRangeFrom and PortRangeTo constraints.
This property is read-only and not available at design time.
CACertificate Property (KMIPServer Component)
The default CA certificate.
Syntax
public Certificate CACertificate { get; set; }
Public Property CACertificate As Certificate
Remarks
KMIP server uses this certificate to sign incoming certificate requests. All certificates generated by the KMIP server will be signed by this CA.
This property is not available at design time.
Please refer to the Certificate type for a complete list of fields.Certificate Property (KMIPServer Component)
Contains the certificate that has just been generated or added.
Syntax
public Certificate Certificate { get; set; }
Public Property Certificate As Certificate
Remarks
Use this property to access the certificate that has just been generated or added.
This property is not available at design time.
Please refer to the Certificate type for a complete list of fields.CompressionLevel Property (KMIPServer Component)
The default compression level to use.
Syntax
Default Value
6
Remarks
Assign this property with the compression level (1 to 9) to apply for gzipped responses. 1 stands for the lightest but fastest compression, and 9 for the best but the slowest.
ExternalCrypto Property (KMIPServer Component)
Provides access to external signing and DC parameters.
Syntax
public ExternalCrypto ExternalCrypto { get; }
Public ReadOnly Property ExternalCrypto As ExternalCrypto
Remarks
Use this property to tune-up remote cryptography settings. SecureBlackbox supports two independent types of external cryptography: synchronous (based on the ExternalSign event) and asynchronous (based on the DC protocol and the DCAuth signing component).
This property is read-only.
Please refer to the ExternalCrypto type for a complete list of fields.FIPSMode Property (KMIPServer Component)
Reserved.
Syntax
Default Value
False
Remarks
This property is reserved for future use.
HandshakeTimeout Property (KMIPServer Component)
Specifies the handshake timeout in milliseconds.
Syntax
Default Value
20000
Remarks
Use this property to set the TLS handshake timeout.
Host Property (KMIPServer Component)
Specifies the host name of the KMIP server.
Syntax
Default Value
""
Remarks
Use this property to specify the address of the KMIP server.
Key Property (KMIPServer Component)
Contains the key that has just been generated or added.
Syntax
Remarks
Use this property to access the key that has just been generated or added.
This property is not available at design time.
Please refer to the CryptoKey type for a complete list of fields.PinnedClient Property (KMIPServer Component)
Populates the pinned client details.
Syntax
public TLSConnectionInfo PinnedClient { get; }
Public ReadOnly Property PinnedClient As TLSConnectionInfo
Remarks
Use this property to access the details of the client connection previously pinned with PinClient method.
This property is read-only and not available at design time.
Please refer to the TLSConnectionInfo type for a complete list of fields.PinnedClientChain Property (KMIPServer Component)
Contains the certificate chain of the pinned client.
Syntax
public CertificateList PinnedClientChain { get; }
Public ReadOnly Property PinnedClientChain As CertificateList
Remarks
Use this property to access the certificate chain of the client connection pinned previously with a PinClient call.
This property is read-only and not available at design time.
Please refer to the Certificate type for a complete list of fields.Port Property (KMIPServer Component)
A port to listen for connections on.
Syntax
Default Value
5696
Remarks
Use this property to specify the listening port.
ReadOnly Property (KMIPServer Component)
Controls whether the server works in read-only mode.
Syntax
Default Value
False
Remarks
Use this property to enable or disable read-only mode on the server. It is an easy way to prevent connecting users from adding or removing objects managed by the server.
This property is not available at design time.
SessionTimeout Property (KMIPServer Component)
Specifies the default session timeout value in milliseconds.
Syntax
Default Value
360000
Remarks
Specifies the period of inactivity (in milliseconds) after which the connection will be terminated by the server.
SocketSettings Property (KMIPServer Component)
Manages network connection settings.
Syntax
public SocketSettings SocketSettings { get; }
Public ReadOnly Property SocketSettings As SocketSettings
Remarks
Use this property to tune up network connection parameters.
This property is read-only.
Please refer to the SocketSettings type for a complete list of fields.StorageFileName Property (KMIPServer Component)
A path to the KMIP object database.
Syntax
Default Value
""
Remarks
Assign the path to the database of objects managed by the KMIP server to this property.
TLSServerChain Property (KMIPServer Component)
The server's TLS certificates.
Syntax
public CertificateList TLSServerChain { get; }
Public Property TLSServerChain As CertificateList
Remarks
Use this property to provide a list of TLS certificates for the server endpoint.
A TLS endpoint needs a certificate to be able to accept TLS connections. At least one of the certificates in the collection - the endpoint certificate - must have a private key associated with it.
The collection may include more than one endpoint certificate, and more than one chain. A typical usage scenario is to include two chains (ECDSA and RSA), to cater for clients with different cipher suite preferences.
This property is not available at design time.
Please refer to the Certificate type for a complete list of fields.TLSSettings Property (KMIPServer Component)
Manages TLS layer settings.
Syntax
public TLSSettings TLSSettings { get; }
Public ReadOnly Property TLSSettings As TLSSettings
Remarks
Use this property to tune up the TLS layer parameters.
This property is read-only.
Please refer to the TLSSettings type for a complete list of fields.UseChunkedTransfer Property (KMIPServer Component)
Enables chunked transfer.
Syntax
Default Value
False
Remarks
Use this property to enable chunked content encoding.
UseCompression Property (KMIPServer Component)
Enables or disables server-side compression.
Syntax
Default Value
False
Remarks
Use this property to enable or disable server-side content compression.
UseHTTP Property (KMIPServer Component)
Specifies whether the server should use HTTP instead of KMIP-over-TCP/TLS.
Syntax
Default Value
False
Remarks
Set this property to true to tell the server to expect HTTP(S) connections instead of TCP-based KMIP requests.
This property is not available at design time.
Users Property (KMIPServer Component)
A database of registered users.
Syntax
public UserAccountList Users { get; }
Public Property Users As UserAccountList
Remarks
Use this property to configure user authentication on the KMIP server.
This property is not available at design time.
Please refer to the UserAccount type for a complete list of fields.Cleanup Method (KMIPServer Component)
Cleans up the server environment by purging expired sessions and cleaning caches.
Syntax
public void Cleanup();
Public Sub Cleanup()
Remarks
Call this method while the server is active to clean up the environment allocated for the server by releasing unused resources and cleaning caches.
Config Method (KMIPServer Component)
Sets or retrieves a configuration setting.
Syntax
Remarks
Config is a generic method available in every component. It is used to set and retrieve configuration settings for the component.
These settings are similar in functionality to properties, but they are rarely used. In order to avoid "polluting" the property namespace of the component, access to these internal properties is provided through the Config method.
To set a configuration setting named PROPERTY, you must call Config("PROPERTY=VALUE"), where VALUE is the value of the setting expressed as a string. For boolean values, use the strings "True", "False", "0", "1", "Yes", or "No" (case does not matter).
To read (query) the value of a configuration setting, you must call Config("PROPERTY"). The value will be returned as a string.
DoAction Method (KMIPServer Component)
Performs an additional action.
Syntax
Remarks
DoAction is a generic method available in every component. It is used to perform an additional action introduced after the product major release. The list of actions is not fixed, and may be flexibly extended over time.
The unique identifier (case insensitive) of the action is provided in the ActionID parameter.
ActionParams contains the value of a single parameter, or a list of multiple parameters for the action in the form of PARAM1=VALUE1;PARAM2=VALUE2;....
DropClient Method (KMIPServer Component)
Terminates a client connection.
Syntax
Remarks
Call this method to shut down a connected client. Forced indicates whether the connection should be closed in a graceful manner.
GetClientCert Method (KMIPServer Component)
Populates the per-connection certificate object.
Syntax
Remarks
This method populates the certificate template/object received with the certificate generation request in Certificate property.
Call this method from your BeforeGenerate event handler to populate the certificate template, as received in the request. It is still not late to alter the details of the certificate on this stage.
Call it from your AfterGenerate event handler to populate the certificate that has been generated.
GetClientKey Method (KMIPServer Component)
Populates the per-connection key object.
Syntax
Remarks
This method populates the key template/object received with the key generation request in Key property.
Call this method from your BeforeGenerateKey event handler to populate the key template, as received in the request. It is still not late to alter the details of the key on this stage.
Call it from your AfterGenerateKey event handler to populate the key that has been generated.
GetRequestHeader Method (KMIPServer Component)
Returns a request header value.
Syntax
Remarks
Use this method to get the value of a request header. A good place to call this method is a request-marking event, such as GetRequest or PostRequest.
GetResponseHeader Method (KMIPServer Component)
Returns a response header value.
Syntax
Remarks
Use this method to get the value of a response header. A good place to call this method is HeadersPrepared event. Call the method with empty HeaderName to get the whole response header.
ListClients Method (KMIPServer Component)
Enumerates the connected clients.
Syntax
Remarks
This method enumerates the connected clients. It returns a list of strings, with each string being of 'ConnectionID|Address|Port' format, and representing a single connection.
PinClient Method (KMIPServer Component)
Takes a snapshot of the connection's properties.
Syntax
Remarks
Use this method to take a snapshot of a connected client. The captured properties are populated in PinnedClient and PinnedClientChain properties.
ProcessGenericRequest Method (KMIPServer Component)
Processes a generic HTTP request.
Syntax
Remarks
This method processes a generic HTTP request and produces a response. Use it to generate HTTP responses for requests obtained externally, out of the default HTTP channel.
This method respects all current settings of the server object, and invokes the corresponding events to consult about the request and response details with the application. ConnectionId allows to identify the request in the events.
The method returns the complete HTTP response including HTTP headers.
Reset Method (KMIPServer Component)
Resets the component settings.
Syntax
public void Reset();
Public Sub Reset()
Remarks
Reset is a generic method available in every component.
SetClientBytes Method (KMIPServer Component)
Commits a data buffer to the connection.
Syntax
Remarks
Use this method from your Response Encrypt AfterEncrypt Decrypt AfterDecrypt Sign AfterSign events handler to commit a new data to the server component.
SetClientCert Method (KMIPServer Component)
Commits the per-connection certificate object to the connection context.
Syntax
Remarks
This method commits the certificate object stored in Certificate to the connection context.
SetClientKey Method (KMIPServer Component)
Commits the per-connection key object to the connection context.
Syntax
Remarks
This method commits the key object stored in Key to the connection context.
SetResponseHeader Method (KMIPServer Component)
Sets a response header.
Syntax
Remarks
Use this method to set a response header. A good place to call this method is a request-marking event, such as GetRequest or PostRequest.
Start Method (KMIPServer Component)
Start the KMIP server.
Syntax
public void Start();
Public Sub Start()
Remarks
Call this method to activate the KMIP server and start listening to incoming connections.
Stop Method (KMIPServer Component)
Stops the KMIP server.
Syntax
public void Stop();
Public Sub Stop()
Remarks
Call this method to stop the KMIP server.
Accept Event (KMIPServer Component)
Reports an incoming connection.
Syntax
public event OnAcceptHandler OnAccept; public delegate void OnAcceptHandler(object sender, KMIPServerAcceptEventArgs e); public class KMIPServerAcceptEventArgs : EventArgs { public string RemoteAddress { get; } public int RemotePort { get; } public bool Accept { get; set; } }
Public Event OnAccept As OnAcceptHandler Public Delegate Sub OnAcceptHandler(sender As Object, e As KMIPServerAcceptEventArgs) Public Class KMIPServerAcceptEventArgs Inherits EventArgs Public ReadOnly Property RemoteAddress As String Public ReadOnly Property RemotePort As Integer Public Property Accept As Boolean End Class
Remarks
This event is fired when a new connection from RemoteAddress:RemotePort is ready to be accepted. Use the Accept parameter to accept or decline it.
Subscribe to Connect event to be notified of every connection that has been set up.
ActivateObject Event (KMIPServer Component)
Notifies the application about the object activation request.
Syntax
public event OnActivateObjectHandler OnActivateObject; public delegate void OnActivateObjectHandler(object sender, KMIPServerActivateObjectEventArgs e); public class KMIPServerActivateObjectEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int OperationStatus { get; set; } }
Public Event OnActivateObject As OnActivateObjectHandler Public Delegate Sub OnActivateObjectHandler(sender As Object, e As KMIPServerActivateObjectEventArgs) Public Class KMIPServerActivateObjectEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property OperationStatus As Integer End Class
Remarks
Subscribe to this event to get notified about object activation requests. The ObjectId parameter contain the unique identifier of the object being activated.
Object activation requests are handled in a simplified way, without using the three-step virtualization approach.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
Add Event (KMIPServer Component)
Passes the certificate import request to the application.
Syntax
public event OnAddHandler OnAdd; public delegate void OnAddHandler(object sender, KMIPServerAddEventArgs e); public class KMIPServerAddEventArgs : EventArgs { public long ConnectionId { get; } public string Group { get; set; } public string CertId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAdd As OnAddHandler Public Delegate Sub OnAddHandler(sender As Object, e As KMIPServerAddEventArgs) Public Class KMIPServerAddEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property Group As String Public Property CertId As String Public Property OperationStatus As Integer End Class
Remarks
The server uses this event to allow the application to customize a certificate import request. This request fires after BeforeAdd if the Action parameter passed back to it was set to fraCustom.
The Group parameter indicates the shared name for the certificate elements (public key, private key, certificate). The CertId provides a unique identifier for the certificate object. Both can be adjusted by the application as required. Use the Certificate object to access the certificate parameters.
Upon completion of the processing, set the value of OperationStatus to match the result of the operation.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AddKey Event (KMIPServer Component)
Expects the application to handle the key import request.
Syntax
public event OnAddKeyHandler OnAddKey; public delegate void OnAddKeyHandler(object sender, KMIPServerAddKeyEventArgs e); public class KMIPServerAddKeyEventArgs : EventArgs { public long ConnectionId { get; } public string Group { get; set; } public string KeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAddKey As OnAddKeyHandler Public Delegate Sub OnAddKeyHandler(sender As Object, e As KMIPServerAddKeyEventArgs) Public Class KMIPServerAddKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property Group As String Public Property KeyId As String Public Property OperationStatus As Integer End Class
Remarks
Application uses this event to wiretap into the key import procedure. For this event to be invoked, the fraCustom action needs to be previously returned from the BeforeAddKey event.
The handler of this event should process the key data provided via the Key property, typically by storing the key object in a local database. The handler also should set the KeyId and, optionally, Group parameters to match the properties of the new key object. The result of the operation should be returned via the OperationStatus parameter.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterAdd Event (KMIPServer Component)
Notifies the application about completion of the certificate import operation.
Syntax
public event OnAfterAddHandler OnAfterAdd; public delegate void OnAfterAddHandler(object sender, KMIPServerAfterAddEventArgs e); public class KMIPServerAfterAddEventArgs : EventArgs { public long ConnectionId { get; } public string Group { get; set; } public string CertId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterAdd As OnAfterAddHandler Public Delegate Sub OnAfterAddHandler(sender As Object, e As KMIPServerAfterAddEventArgs) Public Class KMIPServerAfterAddEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property Group As String Public Property CertId As String Public Property OperationStatus As Integer End Class
Remarks
The component fires this event upon completion of certificate import routine. The certificate object that has been generated can be read from the Certificate property.
The Group and CertId parameters contain the name of the group and the unique identifier assigned to the new certificate. The OperationStatus parameter contains the result of the operation. The application can adjust them as required.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterAddKey Event (KMIPServer Component)
Reports the completion of the key import procedure.
Syntax
public event OnAfterAddKeyHandler OnAfterAddKey; public delegate void OnAfterAddKeyHandler(object sender, KMIPServerAfterAddKeyEventArgs e); public class KMIPServerAfterAddKeyEventArgs : EventArgs { public long ConnectionId { get; } public string Group { get; set; } public string KeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterAddKey As OnAfterAddKeyHandler Public Delegate Sub OnAfterAddKeyHandler(sender As Object, e As KMIPServerAfterAddKeyEventArgs) Public Class KMIPServerAfterAddKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property Group As String Public Property KeyId As String Public Property OperationStatus As Integer End Class
Remarks
The component uses the AfterAddKey event to notify the application about completion of the key import processing. The OperationStatus parameter returns the operation result. The KeyId and Group parameters are set to match the properties of the newly created key. The application can change them if required.
This event fires both for "normal" and "virtualized" requests, independently of the value of the Action parameter returned from the BeforeAddKey event. See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterBrowse Event (KMIPServer Component)
KMIP server uses this event to notify the application about the completion of the browsing (attribute request) operation.
Syntax
public event OnAfterBrowseHandler OnAfterBrowse; public delegate void OnAfterBrowseHandler(object sender, KMIPServerAfterBrowseEventArgs e); public class KMIPServerAfterBrowseEventArgs : EventArgs { public long ConnectionID { get; } public string ObjectId { get; } public int OperationStatus { get; set; } }
Public Event OnAfterBrowse As OnAfterBrowseHandler Public Delegate Sub OnAfterBrowseHandler(sender As Object, e As KMIPServerAfterBrowseEventArgs) Public Class KMIPServerAfterBrowseEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long Public ReadOnly Property ObjectId As String Public Property OperationStatus As Integer End Class
Remarks
The ConnectionID parameter identifies the client connection, and the ObjectId parameter specifies the unique ID of the object the attributes of which are being requested.
This event follows the three-step virtualization approach, and fires after the preceding BeforeBrowse and ReadAttribute events.
Check the operation status, and alter it, if needed, through the OperationStatus parameter:
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterDecrypt Event (KMIPServer Component)
Notifies the application about completion of the decryption call.
Syntax
public event OnAfterDecryptHandler OnAfterDecrypt; public delegate void OnAfterDecryptHandler(object sender, KMIPServerAfterDecryptEventArgs e); public class KMIPServerAfterDecryptEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public byte[] DecryptedData { get; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterDecrypt As OnAfterDecryptHandler Public Delegate Sub OnAfterDecryptHandler(sender As Object, e As KMIPServerAfterDecryptEventArgs) Public Class KMIPServerAfterDecryptEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property DecryptedData As Byte() Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about completion of the decrypt request. The event parameters provide the details of the decryption operation. This event fires independently of whether the build-in or virtualized decryption is used.
The ObjectId parameter contains the unique identifier of the decryption key. DecryptedData contains the decryption result. The CorrelationValue string is a linking token that allows to associate several pieces of a multi-step decryption operation together. The OperationStatus contains the result of the operation.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterDeriveKey Event (KMIPServer Component)
Notifies the application about completion of the key derivation request.
Syntax
public event OnAfterDeriveKeyHandler OnAfterDeriveKey; public delegate void OnAfterDeriveKeyHandler(object sender, KMIPServerAfterDeriveKeyEventArgs e); public class KMIPServerAfterDeriveKeyEventArgs : EventArgs { public long ConnectionId { get; } public string NewKeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterDeriveKey As OnAfterDeriveKeyHandler Public Delegate Sub OnAfterDeriveKeyHandler(sender As Object, e As KMIPServerAfterDeriveKeyEventArgs) Public Class KMIPServerAfterDeriveKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property NewKeyId As String Public Property OperationStatus As Integer End Class
Remarks
Use this event to get notified about completion of key derivation requests. The OperationStatus parameter specifies the result of the key derivation operation. The NewKeyId contains the unique identifier of the new key. You can change both parameters if required.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterEdit Event (KMIPServer Component)
Notifies the application of completion of the object editing operation.
Syntax
public event OnAfterEditHandler OnAfterEdit; public delegate void OnAfterEditHandler(object sender, KMIPServerAfterEditEventArgs e); public class KMIPServerAfterEditEventArgs : EventArgs { public long ConnectionID { get; } public string ObjectId { get; } public int OperationStatus { get; set; } }
Public Event OnAfterEdit As OnAfterEditHandler Public Delegate Sub OnAfterEditHandler(sender As Object, e As KMIPServerAfterEditEventArgs) Public Class KMIPServerAfterEditEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long Public ReadOnly Property ObjectId As String Public Property OperationStatus As Integer End Class
Remarks
The component fires this event to notify the application about completion of an edit operation. An edit operation consists of a number of individual attribute update requests.
The ObjectId parameter contains the unique identifier of the object that was edited. Use the OperationStatus parameter to check or update the result of the operation.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterEncrypt Event (KMIPServer Component)
Notifies the application about the completion of the encryption call.
Syntax
public event OnAfterEncryptHandler OnAfterEncrypt; public delegate void OnAfterEncryptHandler(object sender, KMIPServerAfterEncryptEventArgs e); public class KMIPServerAfterEncryptEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public byte[] EncryptedData { get; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterEncrypt As OnAfterEncryptHandler Public Delegate Sub OnAfterEncryptHandler(sender As Object, e As KMIPServerAfterEncryptEventArgs) Public Class KMIPServerAfterEncryptEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property EncryptedData As Byte() Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about completion of the encrypt request. The event parameters provide the details of the encryption operation. This event fires independently of whether the build-in or virtualized decryption is used.
The ObjectId parameter contains the unique identifier of the encryption key. EncryptedData contains the encryption result. The CorrelationValue string is a linking token that allows to associate several pieces of a multi-step encryption operation together. The OperationStatus contains the result of the operation.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterGenerate Event (KMIPServer Component)
Signifies completion of certificate generation.
Syntax
public event OnAfterGenerateHandler OnAfterGenerate; public delegate void OnAfterGenerateHandler(object sender, KMIPServerAfterGenerateEventArgs e); public class KMIPServerAfterGenerateEventArgs : EventArgs { public long ConnectionId { get; } public string CertId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterGenerate As OnAfterGenerateHandler Public Delegate Sub OnAfterGenerateHandler(sender As Object, e As KMIPServerAfterGenerateEventArgs) Public Class KMIPServerAfterGenerateEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property CertId As String Public Property OperationStatus As Integer End Class
Remarks
The component fires this event upon completion of certificate generation routine. The generated certificate can be read from Certificate.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterGenerateKey Event (KMIPServer Component)
Notifies the application of the completion of key generation procedure.
Syntax
public event OnAfterGenerateKeyHandler OnAfterGenerateKey; public delegate void OnAfterGenerateKeyHandler(object sender, KMIPServerAfterGenerateKeyEventArgs e); public class KMIPServerAfterGenerateKeyEventArgs : EventArgs { public long ConnectionId { get; } public string KeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterGenerateKey As OnAfterGenerateKeyHandler Public Delegate Sub OnAfterGenerateKeyHandler(sender As Object, e As KMIPServerAfterGenerateKeyEventArgs) Public Class KMIPServerAfterGenerateKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property KeyId As String Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about the completion of the key generation procedure. The KeyId parameter contains the ID of the new key object (and can be changed by the user code if required). The OperationStatus parameter reports the result of the operation.
This event is the third and conclusive in the sequence of BeforeGenerateKey, GenerateKey, and the AfterGenerateKey events. See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterGenerateKeyPair Event (KMIPServer Component)
Notifies the application of the completion of keypair generation.
Syntax
public event OnAfterGenerateKeyPairHandler OnAfterGenerateKeyPair; public delegate void OnAfterGenerateKeyPairHandler(object sender, KMIPServerAfterGenerateKeyPairEventArgs e); public class KMIPServerAfterGenerateKeyPairEventArgs : EventArgs { public long ConnectionId { get; } public string PrivateKeyId { get; set; } public string PublicKeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterGenerateKeyPair As OnAfterGenerateKeyPairHandler Public Delegate Sub OnAfterGenerateKeyPairHandler(sender As Object, e As KMIPServerAfterGenerateKeyPairEventArgs) Public Class KMIPServerAfterGenerateKeyPairEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property PrivateKeyId As String Public Property PublicKeyId As String Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about the completion of the keypair generation operation. The PrivateKeyId and PublicKeyId parameters contain the IDs of the new private and public keys respectively. The OperationStatus parameter returns the result of the operation.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterHash Event (KMIPServer Component)
Notifies the application about completion of the hashing call.
Syntax
public event OnAfterHashHandler OnAfterHash; public delegate void OnAfterHashHandler(object sender, KMIPServerAfterHashEventArgs e); public class KMIPServerAfterHashEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public byte[] HashData { get; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterHash As OnAfterHashHandler Public Delegate Sub OnAfterHashHandler(sender As Object, e As KMIPServerAfterHashEventArgs) Public Class KMIPServerAfterHashEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property HashData As Byte() Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
Subscribe to this event to be notified about completion of the hashing request processing. The DataHash parameter contains the hash that has been calculated. The OperationStatus parameter contains the operation result. If the hashing operation was a MAC (keyed) operation, the ID of the key is passed to the ObjectId parameter.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterList Event (KMIPServer Component)
Notifies the application about completion of the list command.
Syntax
public event OnAfterListHandler OnAfterList; public delegate void OnAfterListHandler(object sender, KMIPServerAfterListEventArgs e); public class KMIPServerAfterListEventArgs : EventArgs { public long ConnectionId { get; } public int ObjectType { get; } public int ObjectStatus { get; } public bool OnlyFreshObjects { get; } public string ObjectIds { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterList As OnAfterListHandler Public Delegate Sub OnAfterListHandler(sender As Object, e As KMIPServerAfterListEventArgs) Public Class KMIPServerAfterListEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectType As Integer Public ReadOnly Property ObjectStatus As Integer Public ReadOnly Property OnlyFreshObjects As Boolean Public Property ObjectIds As String Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about the completion of the list command. The ObjectType, ObjectStatus, and OnlyFreshObjects contain the listing criteria. The ObjectIds contains a list of object unique identifiers, separated by newlines.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterObtainLease Event (KMIPServer Component)
Reports the completion of lease allocation operation.
Syntax
public event OnAfterObtainLeaseHandler OnAfterObtainLease; public delegate void OnAfterObtainLeaseHandler(object sender, KMIPServerAfterObtainLeaseEventArgs e); public class KMIPServerAfterObtainLeaseEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int LeaseTime { get; set; } public string LastChangeDate { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterObtainLease As OnAfterObtainLeaseHandler Public Delegate Sub OnAfterObtainLeaseHandler(sender As Object, e As KMIPServerAfterObtainLeaseEventArgs) Public Class KMIPServerAfterObtainLeaseEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property LeaseTime As Integer Public Property LastChangeDate As String Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about the completion of lease allocation operation. The ObjectId parameter specifies the identifier of the object a lease for each is allocated. The LeaseTime and LastChangeDate parameters specify parameters of the lease.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterReadObject Event (KMIPServer Component)
Notifies the application of the completion of the read operation on the object.
Syntax
public event OnAfterReadObjectHandler OnAfterReadObject; public delegate void OnAfterReadObjectHandler(object sender, KMIPServerAfterReadObjectEventArgs e); public class KMIPServerAfterReadObjectEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int ObjectType { get; } public int OperationStatus { get; set; } }
Public Event OnAfterReadObject As OnAfterReadObjectHandler Public Delegate Sub OnAfterReadObjectHandler(sender As Object, e As KMIPServerAfterReadObjectEventArgs) Public Class KMIPServerAfterReadObjectEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property ObjectType As Integer Public Property OperationStatus As Integer End Class
Remarks
Use this event to be notified about completion of the read operation.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterReCertify Event (KMIPServer Component)
Notifies the application about the completion of the re-certify operation.
Syntax
public event OnAfterReCertifyHandler OnAfterReCertify; public delegate void OnAfterReCertifyHandler(object sender, KMIPServerAfterReCertifyEventArgs e); public class KMIPServerAfterReCertifyEventArgs : EventArgs { public long ConnectionId { get; } public string NewCertId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterReCertify As OnAfterReCertifyHandler Public Delegate Sub OnAfterReCertifyHandler(sender As Object, e As KMIPServerAfterReCertifyEventArgs) Public Class KMIPServerAfterReCertifyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property NewCertId As String Public Property OperationStatus As Integer End Class
Remarks
The server component uses this event to notify the application about the completion of the re-certification (certificate renewal) operation. The NewCertId contains the unique ID of the new certificate object. You can adjust it if required.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterReKey Event (KMIPServer Component)
Notifies the application about the completion of the re-key operation.
Syntax
public event OnAfterReKeyHandler OnAfterReKey; public delegate void OnAfterReKeyHandler(object sender, KMIPServerAfterReKeyEventArgs e); public class KMIPServerAfterReKeyEventArgs : EventArgs { public long ConnectionId { get; } public string NewKeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterReKey As OnAfterReKeyHandler Public Delegate Sub OnAfterReKeyHandler(sender As Object, e As KMIPServerAfterReKeyEventArgs) Public Class KMIPServerAfterReKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property NewKeyId As String Public Property OperationStatus As Integer End Class
Remarks
The server component uses this event to notify the application about the completion of the re-key (key renewal) operation. The NewKeyId contains the unique ID of the new key object. You can adjust it if required.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterRekeyKeyPair Event (KMIPServer Component)
Notifies the application about the completion of the re-key keypair operation.
Syntax
public event OnAfterRekeyKeyPairHandler OnAfterRekeyKeyPair; public delegate void OnAfterRekeyKeyPairHandler(object sender, KMIPServerAfterRekeyKeyPairEventArgs e); public class KMIPServerAfterRekeyKeyPairEventArgs : EventArgs { public long ConnectionId { get; } public string NewPrivateKeyId { get; set; } public string NewPublicKeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterRekeyKeyPair As OnAfterRekeyKeyPairHandler Public Delegate Sub OnAfterRekeyKeyPairHandler(sender As Object, e As KMIPServerAfterRekeyKeyPairEventArgs) Public Class KMIPServerAfterRekeyKeyPairEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property NewPrivateKeyId As String Public Property NewPublicKeyId As String Public Property OperationStatus As Integer End Class
Remarks
The server component uses this event to notify the application about the completion of the re-key (asymmetric key renewal) operation. The NewPrivateKeyId and NewPublicKeyId parameters contains the unique ID of the new key objects. You can adjust them if required.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterRemoveObject Event (KMIPServer Component)
Notifies the application about completion of the object removal request.
Syntax
public event OnAfterRemoveObjectHandler OnAfterRemoveObject; public delegate void OnAfterRemoveObjectHandler(object sender, KMIPServerAfterRemoveObjectEventArgs e); public class KMIPServerAfterRemoveObjectEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int OperationStatus { get; set; } }
Public Event OnAfterRemoveObject As OnAfterRemoveObjectHandler Public Delegate Sub OnAfterRemoveObjectHandler(sender As Object, e As KMIPServerAfterRemoveObjectEventArgs) Public Class KMIPServerAfterRemoveObjectEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property OperationStatus As Integer End Class
Remarks
Subscribe to this event to be notified about completion of an object removal request. The OperationStatus parameter contains the result of the operation.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterSign Event (KMIPServer Component)
Notifies the application of completion of a signing operation.
Syntax
public event OnAfterSignHandler OnAfterSign; public delegate void OnAfterSignHandler(object sender, KMIPServerAfterSignEventArgs e); public class KMIPServerAfterSignEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public bool InputIsHash { get; } public byte[] SignatureData { get; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterSign As OnAfterSignHandler Public Delegate Sub OnAfterSignHandler(sender As Object, e As KMIPServerAfterSignEventArgs) Public Class KMIPServerAfterSignEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property InputIsHash As Boolean Public ReadOnly Property SignatureData As Byte() Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about the completion of a signing operation.
The ObjectId parameter contains the unique identifier of the signing key. SignatureData contains the signing result. The CorrelationValue string is a linking token that allows to associate several pieces of a multi-step signing operation together. The OperationStatus contains the result of the operation.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterVerify Event (KMIPServer Component)
Notifies the application about completion of the Verify operation.
Syntax
public event OnAfterVerifyHandler OnAfterVerify; public delegate void OnAfterVerifyHandler(object sender, KMIPServerAfterVerifyEventArgs e); public class KMIPServerAfterVerifyEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public bool InputIsHash { get; } public int ValidationResult { get; set; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterVerify As OnAfterVerifyHandler Public Delegate Sub OnAfterVerifyHandler(sender As Object, e As KMIPServerAfterVerifyEventArgs) Public Class KMIPServerAfterVerifyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property InputIsHash As Boolean Public Property ValidationResult As Integer Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
The component fires this event to notify the application of a completion of a verification operation. The ValidationResult parameter contains the validity status of the signature.
The ObjectId parameter contains the unique identifier of the verifying key. The OperationStatus parameter contains the result of the operation.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AfterVerifyHash Event (KMIPServer Component)
Notifies the application about completion of the hash verification.
Syntax
public event OnAfterVerifyHashHandler OnAfterVerifyHash; public delegate void OnAfterVerifyHashHandler(object sender, KMIPServerAfterVerifyHashEventArgs e); public class KMIPServerAfterVerifyHashEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public bool IsValid { get; set; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnAfterVerifyHash As OnAfterVerifyHashHandler Public Delegate Sub OnAfterVerifyHashHandler(sender As Object, e As KMIPServerAfterVerifyHashEventArgs) Public Class KMIPServerAfterVerifyHashEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property IsValid As Boolean Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about hash verification result. The optional ObjectId parameter contains the unique identifier of the key object if HMAC algorithm is used.
The IsValid parameter contains the validity factor of the hash.
See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
ArchiveObject Event (KMIPServer Component)
Notifies the application about the received object archival request.
Syntax
public event OnArchiveObjectHandler OnArchiveObject; public delegate void OnArchiveObjectHandler(object sender, KMIPServerArchiveObjectEventArgs e); public class KMIPServerArchiveObjectEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int OperationStatus { get; set; } }
Public Event OnArchiveObject As OnArchiveObjectHandler Public Delegate Sub OnArchiveObjectHandler(sender As Object, e As KMIPServerArchiveObjectEventArgs) Public Class KMIPServerArchiveObjectEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property OperationStatus As Integer End Class
Remarks
The component fires this event when it receives an object archival request from a connected client. The archival procedure go through a simplified handling route, without the three-step flow.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
AuthAttempt Event (KMIPServer Component)
Fires when a connected client makes an authentication attempt.
Syntax
public event OnAuthAttemptHandler OnAuthAttempt; public delegate void OnAuthAttemptHandler(object sender, KMIPServerAuthAttemptEventArgs e); public class KMIPServerAuthAttemptEventArgs : EventArgs { public long ConnectionID { get; } public string HTTPMethod { get; } public string URI { get; } public string AuthMethod { get; } public string Username { get; } public string Password { get; } public bool Allow { get; set; } }
Public Event OnAuthAttempt As OnAuthAttemptHandler Public Delegate Sub OnAuthAttemptHandler(sender As Object, e As KMIPServerAuthAttemptEventArgs) Public Class KMIPServerAuthAttemptEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long Public ReadOnly Property HTTPMethod As String Public ReadOnly Property URI As String Public ReadOnly Property AuthMethod As String Public ReadOnly Property Username As String Public ReadOnly Property Password As String Public Property Allow As Boolean End Class
Remarks
The component fires this event whenever a client attempts to authenticate itself. Use the Allow parameter to let the client through.
ConnectionID contains the unique session identifier for that client, HTTPMethod specifies the HTTP method (GET, POST, etc.) used to access the URI resource, AuthMethod specifies the authentication method, and Username and Password contain the professed credentials.
BeforeAdd Event (KMIPServer Component)
Fires when a certificate import request is received from a client.
Syntax
public event OnBeforeAddHandler OnBeforeAdd; public delegate void OnBeforeAddHandler(object sender, KMIPServerBeforeAddEventArgs e); public class KMIPServerBeforeAddEventArgs : EventArgs { public long ConnectionId { get; } public string Group { get; set; } public int Action { get; set; } }
Public Event OnBeforeAdd As OnBeforeAddHandler Public Delegate Sub OnBeforeAddHandler(sender As Object, e As KMIPServerBeforeAddEventArgs) Public Class KMIPServerBeforeAddEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property Group As String Public Property Action As Integer End Class
Remarks
The component fires this event when it receives a request from the client to import a certificate on to the server. The supplied certificate is available in Certificate object.
The Group parameter specifies a common identifier for objects related to the certificate being imported: the certificate, its public key, and its private key.
BeforeAddKey Event (KMIPServer Component)
Fires when a key import request is received from the client.
Syntax
public event OnBeforeAddKeyHandler OnBeforeAddKey; public delegate void OnBeforeAddKeyHandler(object sender, KMIPServerBeforeAddKeyEventArgs e); public class KMIPServerBeforeAddKeyEventArgs : EventArgs { public long ConnectionId { get; } public string Group { get; set; } public int Action { get; set; } }
Public Event OnBeforeAddKey As OnBeforeAddKeyHandler Public Delegate Sub OnBeforeAddKeyHandler(sender As Object, e As KMIPServerBeforeAddKeyEventArgs) Public Class KMIPServerBeforeAddKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property Group As String Public Property Action As Integer End Class
Remarks
The component fires this event when it receives a request from the client to import a key on to the server. The supplied key is available in the Key parameter.
For keypairs, the Group parameter contains a common label that will be applied to both parts of that keypair (the public key object and the private key object).
BeforeBrowse Event (KMIPServer Component)
Notifies the application about the browse request being received.
Syntax
public event OnBeforeBrowseHandler OnBeforeBrowse; public delegate void OnBeforeBrowseHandler(object sender, KMIPServerBeforeBrowseEventArgs e); public class KMIPServerBeforeBrowseEventArgs : EventArgs { public long ConnectionID { get; } public string ObjectId { get; } public int Action { get; set; } }
Public Event OnBeforeBrowse As OnBeforeBrowseHandler Public Delegate Sub OnBeforeBrowseHandler(sender As Object, e As KMIPServerBeforeBrowseEventArgs) Public Class KMIPServerBeforeBrowseEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long Public ReadOnly Property ObjectId As String Public Property Action As Integer End Class
Remarks
The component uses this event to notify the application about a browse request received for an object ObjectId.
BeforeDecrypt Event (KMIPServer Component)
Notifies the application about the initiation of the decryption operation.
Syntax
public event OnBeforeDecryptHandler OnBeforeDecrypt; public delegate void OnBeforeDecryptHandler(object sender, KMIPServerBeforeDecryptEventArgs e); public class KMIPServerBeforeDecryptEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public string CorrelationValue { get; set; } public int Action { get; set; } }
Public Event OnBeforeDecrypt As OnBeforeDecryptHandler Public Delegate Sub OnBeforeDecryptHandler(sender As Object, e As KMIPServerBeforeDecryptEventArgs) Public Class KMIPServerBeforeDecryptEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property CorrelationValue As String Public Property Action As Integer End Class
Remarks
The component fires this event to notify the application about the initiation of the decryption operation. The ObjectId parameter contains a reference to the decryption key. The optional CorrelationValue parameter can be used to link consecutive steps of multi-part decryption operation together.
Use the Action parameter to indicate the procedure you want to use for this request. See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
BeforeDeriveKey Event (KMIPServer Component)
Fires when a derive key request is received.
Syntax
public event OnBeforeDeriveKeyHandler OnBeforeDeriveKey; public delegate void OnBeforeDeriveKeyHandler(object sender, KMIPServerBeforeDeriveKeyEventArgs e); public class KMIPServerBeforeDeriveKeyEventArgs : EventArgs { public long ConnectionId { get; } public int ObjectType { get; } public string ObjectIds { get; } public string DerivationMethod { get; } public int Action { get; set; } }
Public Event OnBeforeDeriveKey As OnBeforeDeriveKeyHandler Public Delegate Sub OnBeforeDeriveKeyHandler(sender As Object, e As KMIPServerBeforeDeriveKeyEventArgs) Public Class KMIPServerBeforeDeriveKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectType As Integer Public ReadOnly Property ObjectIds As String Public ReadOnly Property DerivationMethod As String Public Property Action As Integer End Class
Remarks
The component fires this event when it receives a request from the client to derive a key. The supplied certificate is available in Key.
BeforeEdit Event (KMIPServer Component)
Notifies the application about the start of the object editing operation.
Syntax
public event OnBeforeEditHandler OnBeforeEdit; public delegate void OnBeforeEditHandler(object sender, KMIPServerBeforeEditEventArgs e); public class KMIPServerBeforeEditEventArgs : EventArgs { public long ConnectionID { get; } public string ObjectId { get; } public int Action { get; set; } }
Public Event OnBeforeEdit As OnBeforeEditHandler Public Delegate Sub OnBeforeEditHandler(sender As Object, e As KMIPServerBeforeEditEventArgs) Public Class KMIPServerBeforeEditEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long Public ReadOnly Property ObjectId As String Public Property Action As Integer End Class
Remarks
The editing operation consists of a sequence of attribute update requests. Each attribute is provided to the application via an individual SetAttribute call. When the list of supplied attributes has been exhausted, the AfterEdit event call follows.
The ObjectId parameter specifies the identifier of the object being edited.
BeforeEncrypt Event (KMIPServer Component)
Notifies the application about the initiation of an encryption operation.
Syntax
public event OnBeforeEncryptHandler OnBeforeEncrypt; public delegate void OnBeforeEncryptHandler(object sender, KMIPServerBeforeEncryptEventArgs e); public class KMIPServerBeforeEncryptEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public string CorrelationValue { get; set; } public int Action { get; set; } }
Public Event OnBeforeEncrypt As OnBeforeEncryptHandler Public Delegate Sub OnBeforeEncryptHandler(sender As Object, e As KMIPServerBeforeEncryptEventArgs) Public Class KMIPServerBeforeEncryptEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property CorrelationValue As String Public Property Action As Integer End Class
Remarks
The component fires this event to notify the application about the initiation of an encryption operation. The ObjectId parameter contains a reference to the encryption key. The optional CorrelationValue parameter can be used to link consecutive steps of multi-part encryption operation together.
Use the Action parameter to indicate the procedure you want to use for this request. See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
BeforeGenerate Event (KMIPServer Component)
Fires when a certificate generation request is received.
Syntax
public event OnBeforeGenerateHandler OnBeforeGenerate; public delegate void OnBeforeGenerateHandler(object sender, KMIPServerBeforeGenerateEventArgs e); public class KMIPServerBeforeGenerateEventArgs : EventArgs { public long ConnectionId { get; } public string PublicKeyId { get; } public int Action { get; set; } }
Public Event OnBeforeGenerate As OnBeforeGenerateHandler Public Delegate Sub OnBeforeGenerateHandler(sender As Object, e As KMIPServerBeforeGenerateEventArgs) Public Class KMIPServerBeforeGenerateEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property PublicKeyId As String Public Property Action As Integer End Class
Remarks
The component fires this event when it receives a request from the client to generate a certificate. The supplied certificate template is available in Certificate.
BeforeGenerateKey Event (KMIPServer Component)
Fires when a key generation request is received.
Syntax
public event OnBeforeGenerateKeyHandler OnBeforeGenerateKey; public delegate void OnBeforeGenerateKeyHandler(object sender, KMIPServerBeforeGenerateKeyEventArgs e); public class KMIPServerBeforeGenerateKeyEventArgs : EventArgs { public long ConnectionId { get; } public string KeyAlgorithm { get; set; } public int KeyLength { get; set; } public int Action { get; set; } }
Public Event OnBeforeGenerateKey As OnBeforeGenerateKeyHandler Public Delegate Sub OnBeforeGenerateKeyHandler(sender As Object, e As KMIPServerBeforeGenerateKeyEventArgs) Public Class KMIPServerBeforeGenerateKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property KeyAlgorithm As String Public Property KeyLength As Integer Public Property Action As Integer End Class
Remarks
The component fires this event when it receives a request from the client to generate a key. KeyAlgorithm and KeyLength parameters specify the requested key properties.
BeforeGenerateKeyPair Event (KMIPServer Component)
Fires when a key generation request is received.
Syntax
public event OnBeforeGenerateKeyPairHandler OnBeforeGenerateKeyPair; public delegate void OnBeforeGenerateKeyPairHandler(object sender, KMIPServerBeforeGenerateKeyPairEventArgs e); public class KMIPServerBeforeGenerateKeyPairEventArgs : EventArgs { public long ConnectionId { get; } public string KeyAlgorithm { get; set; } public int KeyLength { get; set; } public string Scheme { get; set; } public string SchemeParams { get; set; } public int Action { get; set; } }
Public Event OnBeforeGenerateKeyPair As OnBeforeGenerateKeyPairHandler Public Delegate Sub OnBeforeGenerateKeyPairHandler(sender As Object, e As KMIPServerBeforeGenerateKeyPairEventArgs) Public Class KMIPServerBeforeGenerateKeyPairEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public Property KeyAlgorithm As String Public Property KeyLength As Integer Public Property Scheme As String Public Property SchemeParams As String Public Property Action As Integer End Class
Remarks
The component fires this event when it receives a request from the client to generate a keypair. KeyAlgorithm, KeyLength, Scheme and SchemeParams parameters specify the requested key properties.
BeforeHash Event (KMIPServer Component)
Notifies the application about the initiation of the hashing operation.
Syntax
public event OnBeforeHashHandler OnBeforeHash; public delegate void OnBeforeHashHandler(object sender, KMIPServerBeforeHashEventArgs e); public class KMIPServerBeforeHashEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public string HashAlgorithm { get; } public string CorrelationValue { get; set; } public int Action { get; set; } }
Public Event OnBeforeHash As OnBeforeHashHandler Public Delegate Sub OnBeforeHashHandler(sender As Object, e As KMIPServerBeforeHashEventArgs) Public Class KMIPServerBeforeHashEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property HashAlgorithm As String Public Property CorrelationValue As String Public Property Action As Integer End Class
Remarks
The component fires this event to notify the application about the initiation of a hashing operation. The optional ObjectId parameter contains a reference to the hashing key if HMAC-based hashing is used. The optional CorrelationValue parameter can be used to link consecutive steps of multi-part hash operation together.
Use the Action parameter to indicate the procedure you want to use for this request. See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
BeforeList Event (KMIPServer Component)
Notifies the application about the initiation of the list operation.
Syntax
public event OnBeforeListHandler OnBeforeList; public delegate void OnBeforeListHandler(object sender, KMIPServerBeforeListEventArgs e); public class KMIPServerBeforeListEventArgs : EventArgs { public long ConnectionId { get; } public int ObjectType { get; } public int ObjectStatus { get; } public bool OnlyFreshObjects { get; } public int Action { get; set; } }
Public Event OnBeforeList As OnBeforeListHandler Public Delegate Sub OnBeforeListHandler(sender As Object, e As KMIPServerBeforeListEventArgs) Public Class KMIPServerBeforeListEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectType As Integer Public ReadOnly Property ObjectStatus As Integer Public ReadOnly Property OnlyFreshObjects As Boolean Public Property Action As Integer End Class
Remarks
The component uses this event to notify the application of the received list call. The ObjectType, ObjectStatus, and OnlyFreshObjects parameters provide the listing criteria.
BeforeObtainLease Event (KMIPServer Component)
Notifies the application about the client requesting an object lease.
Syntax
public event OnBeforeObtainLeaseHandler OnBeforeObtainLease; public delegate void OnBeforeObtainLeaseHandler(object sender, KMIPServerBeforeObtainLeaseEventArgs e); public class KMIPServerBeforeObtainLeaseEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int Action { get; set; } }
Public Event OnBeforeObtainLease As OnBeforeObtainLeaseHandler Public Delegate Sub OnBeforeObtainLeaseHandler(sender As Object, e As KMIPServerBeforeObtainLeaseEventArgs) Public Class KMIPServerBeforeObtainLeaseEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property Action As Integer End Class
Remarks
Use this event to get notified about the connected client requesting an object lease.
BeforeReadObject Event (KMIPServer Component)
Notifies the application about the start of the object reading request.
Syntax
public event OnBeforeReadObjectHandler OnBeforeReadObject; public delegate void OnBeforeReadObjectHandler(object sender, KMIPServerBeforeReadObjectEventArgs e); public class KMIPServerBeforeReadObjectEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int Action { get; set; } }
Public Event OnBeforeReadObject As OnBeforeReadObjectHandler Public Delegate Sub OnBeforeReadObjectHandler(sender As Object, e As KMIPServerBeforeReadObjectEventArgs) Public Class KMIPServerBeforeReadObjectEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property Action As Integer End Class
Remarks
Object "reading" consists of a number of individual attribute requests. If fraCustom action is returned from this event handler, the component will fire ReadObject and ReadAttribute events repeatedly to request information about the object from your code.
BeforeReCertify Event (KMIPServer Component)
Notifies the application about a re-certification request.
Syntax
public event OnBeforeReCertifyHandler OnBeforeReCertify; public delegate void OnBeforeReCertifyHandler(object sender, KMIPServerBeforeReCertifyEventArgs e); public class KMIPServerBeforeReCertifyEventArgs : EventArgs { public long ConnectionId { get; } public string OldCertId { get; } public int Action { get; set; } }
Public Event OnBeforeReCertify As OnBeforeReCertifyHandler Public Delegate Sub OnBeforeReCertifyHandler(sender As Object, e As KMIPServerBeforeReCertifyEventArgs) Public Class KMIPServerBeforeReCertifyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property OldCertId As String Public Property Action As Integer End Class
Remarks
The component uses this event to notify the application about a re-certification request (a request to re-issue an existing certificate).
The OldCertId parameter indicates the unique identifier of the certificate object that needs to be re-issued.
This event provides a pre-notification for the operation. If your code sets the Action parameter to fraCustom, this event will be followed by a ReCertify call that will let you handle the actual request as required.
BeforeReKey Event (KMIPServer Component)
Notifies the application about a re-key request received.
Syntax
public event OnBeforeReKeyHandler OnBeforeReKey; public delegate void OnBeforeReKeyHandler(object sender, KMIPServerBeforeReKeyEventArgs e); public class KMIPServerBeforeReKeyEventArgs : EventArgs { public long ConnectionId { get; } public string OldKeyId { get; } public int Action { get; set; } }
Public Event OnBeforeReKey As OnBeforeReKeyHandler Public Delegate Sub OnBeforeReKeyHandler(sender As Object, e As KMIPServerBeforeReKeyEventArgs) Public Class KMIPServerBeforeReKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property OldKeyId As String Public Property Action As Integer End Class
Remarks
The component uses this event to notify the application about a key re-issue request received from the client. The OldKeyId parameter contains the unique identifier of the old key object.
BeforeRekeyKeyPair Event (KMIPServer Component)
Notifies the application about a keypair re-key request received.
Syntax
public event OnBeforeRekeyKeyPairHandler OnBeforeRekeyKeyPair; public delegate void OnBeforeRekeyKeyPairHandler(object sender, KMIPServerBeforeRekeyKeyPairEventArgs e); public class KMIPServerBeforeRekeyKeyPairEventArgs : EventArgs { public long ConnectionId { get; } public string OldPrivateKeyId { get; } public int Action { get; set; } }
Public Event OnBeforeRekeyKeyPair As OnBeforeRekeyKeyPairHandler Public Delegate Sub OnBeforeRekeyKeyPairHandler(sender As Object, e As KMIPServerBeforeRekeyKeyPairEventArgs) Public Class KMIPServerBeforeRekeyKeyPairEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property OldPrivateKeyId As String Public Property Action As Integer End Class
Remarks
The component uses this event to notify the application about a keypair re-issue request received from the client. The OldPrivateKeyId parameter contains the unique identifier of the old private key object.
BeforeRemoveObject Event (KMIPServer Component)
Notifies the application about an incoming Remove Object request.
Syntax
public event OnBeforeRemoveObjectHandler OnBeforeRemoveObject; public delegate void OnBeforeRemoveObjectHandler(object sender, KMIPServerBeforeRemoveObjectEventArgs e); public class KMIPServerBeforeRemoveObjectEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int Action { get; set; } }
Public Event OnBeforeRemoveObject As OnBeforeRemoveObjectHandler Public Delegate Sub OnBeforeRemoveObjectHandler(sender As Object, e As KMIPServerBeforeRemoveObjectEventArgs) Public Class KMIPServerBeforeRemoveObjectEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property Action As Integer End Class
Remarks
Subscribe to this event to choose the operation flow (automated/custom) for the object removal operation.
BeforeSign Event (KMIPServer Component)
Notifies the application about the initiation of a signing operation.
Syntax
public event OnBeforeSignHandler OnBeforeSign; public delegate void OnBeforeSignHandler(object sender, KMIPServerBeforeSignEventArgs e); public class KMIPServerBeforeSignEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public string Algorithm { get; } public string HashAlgorithm { get; } public bool InputIsHash { get; } public string CorrelationValue { get; set; } public int Action { get; set; } }
Public Event OnBeforeSign As OnBeforeSignHandler Public Delegate Sub OnBeforeSignHandler(sender As Object, e As KMIPServerBeforeSignEventArgs) Public Class KMIPServerBeforeSignEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property Algorithm As String Public ReadOnly Property HashAlgorithm As String Public ReadOnly Property InputIsHash As Boolean Public Property CorrelationValue As String Public Property Action As Integer End Class
Remarks
The component fires this event to notify the application about the initiation of the signing operation. The ObjectId parameter contains a reference to the signing key. The optional CorrelationValue parameter can be used to link consecutive steps of multi-part signing operation together.
Use the Action parameter to indicate the procedure you want to use for this request. See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
BeforeVerify Event (KMIPServer Component)
Notifies the application about the initiation of the verify operation.
Syntax
public event OnBeforeVerifyHandler OnBeforeVerify; public delegate void OnBeforeVerifyHandler(object sender, KMIPServerBeforeVerifyEventArgs e); public class KMIPServerBeforeVerifyEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public string HashAlgorithm { get; } public bool InputIsHash { get; } public string CorrelationValue { get; set; } public int Action { get; set; } }
Public Event OnBeforeVerify As OnBeforeVerifyHandler Public Delegate Sub OnBeforeVerifyHandler(sender As Object, e As KMIPServerBeforeVerifyEventArgs) Public Class KMIPServerBeforeVerifyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property HashAlgorithm As String Public ReadOnly Property InputIsHash As Boolean Public Property CorrelationValue As String Public Property Action As Integer End Class
Remarks
The component fires this event to notify the application about the initiation of the verification operation. The ObjectId parameter contains a reference to the verification key.
Use the Action parameter to indicate the procedure you want to use for this request. See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
BeforeVerifyHash Event (KMIPServer Component)
Notifies the application about the initiation of the hash verification operation.
Syntax
public event OnBeforeVerifyHashHandler OnBeforeVerifyHash; public delegate void OnBeforeVerifyHashHandler(object sender, KMIPServerBeforeVerifyHashEventArgs e); public class KMIPServerBeforeVerifyHashEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public string HashAlgorithm { get; } public string CorrelationValue { get; set; } public int Action { get; set; } }
Public Event OnBeforeVerifyHash As OnBeforeVerifyHashHandler Public Delegate Sub OnBeforeVerifyHashHandler(sender As Object, e As KMIPServerBeforeVerifyHashEventArgs) Public Class KMIPServerBeforeVerifyHashEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property HashAlgorithm As String Public Property CorrelationValue As String Public Property Action As Integer End Class
Remarks
The component fires this event to notify the application about the initiation of the hash verification operation. The ObjectId parameter contains a reference to the HMAC key, if MAC algorithm is used.
Use the Action parameter to indicate the procedure you want to use for this request. See the
Handling and overriding server operations using the Three-Step Virtualization
Most of the server components shipped with SecureBlackbox are highly customizable, allowing the user to override or alter the way the clients' requests are handled by default. The customization feature paves the way for creation of bespoke or virtualized server solutions that work over standardized protocols.
The possibility of customization is typically offered through a three-step virtualization model. Every customizable operation or request that can be handled by the server - say, RenameFile - is represented with a triple of events:
- BeforeRenameFile
- RenameFile
- AfterRenameFile
The first event fires right after the respective request has been received from a client. It provides the details of the operation, such as the original and target file names, and, importantly, a by-reference (writable) Action parameter. The event handler can set the Action parameter to one of the three settings given below. The setting chosen defines the further operation flow:
- fraAuto: the operation shall be handled automatically by the server: in this case, a file will be searched in the provided local directory and renamed.
- fraCustom: indicates that the user wants to take care of the operation by themselves. If this setting is chosen, the server takes no action, and instead fires the RenameFile event shortly after BeforeRenameFile completes. The user is expected to handle RenameFile and perform the requested action - that is, rename the file - manually.
- fraAbort: the operation should be aborted as not supported/allowed. Neither the server nor the user are expected to perform it.
The second event (RenameFile) only fires if Action was set to fraCustom in the earlier call to BeforeRenameFile. It lets the user handle the requested operation in the way they want. The user code must fulfil the operation (for example, rename a database entry, if building a virtualized server), and return the operation result as the event's OperationResult parameter.
If the Action parameter was set to fraAuto, RenameFile is not called. The server performs the operation automatically.
The third event, AfterRenameFile, fires upon completion of the operation, either in automatic or custom mode. The user code can check and/or adjust the result to be returned to the client.
To summarize:
- If Action is set to fraAuto, the next call about this operation will be to AfterRenameFile.
- If Action is set to fraCustom, the next call about the operation will be to RenameFile, and after that to AfterRenameFile.
- If Action is set to fraAbort, the operation is rejected and no further calls about it are performed.
Cancel Event (KMIPServer Component)
Reports a cancellation request received from the client.
Syntax
public event OnCancelHandler OnCancel; public delegate void OnCancelHandler(object sender, KMIPServerCancelEventArgs e); public class KMIPServerCancelEventArgs : EventArgs { public long ConnectionId { get; } public string AsyncCorrelationValue { get; } public int CancellationResult { get; set; } public int OperationStatus { get; set; } }
Public Event OnCancel As OnCancelHandler Public Delegate Sub OnCancelHandler(sender As Object, e As KMIPServerCancelEventArgs) Public Class KMIPServerCancelEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property AsyncCorrelationValue As String Public Property CancellationResult As Integer Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to notify the application about the cancellation request received. The application should handle the cancellation request and set CancellationResult and OperationStatus to one of the following values:
kccCancelled | 0x01 | |
kccUnableToCancel | 0x02 | |
kccCompleted | 0x03 | |
kccFailed | 0x04 | |
kccUnavailable | 0x05 |
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
Check Event (KMIPServer Component)
Notifies the application about a Check request received.
Syntax
public event OnCheckHandler OnCheck; public delegate void OnCheckHandler(object sender, KMIPServerCheckEventArgs e); public class KMIPServerCheckEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public long UsageLimitsCount { get; set; } public int CryptographicUsageMask { get; set; } public int LeaseTime { get; set; } public int OperationStatus { get; set; } }
Public Event OnCheck As OnCheckHandler Public Delegate Sub OnCheckHandler(sender As Object, e As KMIPServerCheckEventArgs) Public Class KMIPServerCheckEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public Property UsageLimitsCount As Long Public Property CryptographicUsageMask As Integer Public Property LeaseTime As Integer Public Property OperationStatus As Integer End Class
Remarks
The component fires this event to notify the application about the Check request received from the client side. Applications working in virtual mode should implement the relevant logic in their event handlers.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
Connect Event (KMIPServer Component)
Reports an accepted connection.
Syntax
public event OnConnectHandler OnConnect; public delegate void OnConnectHandler(object sender, KMIPServerConnectEventArgs e); public class KMIPServerConnectEventArgs : EventArgs { public long ConnectionID { get; } public string RemoteAddress { get; } public int RemotePort { get; } }
Public Event OnConnect As OnConnectHandler Public Delegate Sub OnConnectHandler(sender As Object, e As KMIPServerConnectEventArgs) Public Class KMIPServerConnectEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long Public ReadOnly Property RemoteAddress As String Public ReadOnly Property RemotePort As Integer End Class
Remarks
The component fires this event to report that a new connection has been established. ConnectionId indicates the unique ID assigned to this connection. The same ID will be supplied to any other events related to this connection, such as GetRequest or AuthAttempt.
Decrypt Event (KMIPServer Component)
Instructs the application to decrypt a chunk of data.
Syntax
public event OnDecryptHandler OnDecrypt; public delegate void OnDecryptHandler(object sender, KMIPServerDecryptEventArgs e); public class KMIPServerDecryptEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public byte[] Data { get; } public string IV { get; } public bool InitIndicator { get; } public bool FinalIndicator { get; } public string BlockCipherMode { get; } public int TagLength { get; } public string PaddingMethod { get; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnDecrypt As OnDecryptHandler Public Delegate Sub OnDecryptHandler(sender As Object, e As KMIPServerDecryptEventArgs) Public Class KMIPServerDecryptEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property Data As Byte() Public ReadOnly Property IV As String Public ReadOnly Property InitIndicator As Boolean Public ReadOnly Property FinalIndicator As Boolean Public ReadOnly Property BlockCipherMode As String Public ReadOnly Property TagLength As Integer Public ReadOnly Property PaddingMethod As String Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
The server uses this event to inform the application of a decryption request submitted by the client and, optionally, request the application to decrypt the data block with the provided set of parameters. The decryption logic only needs to be implemented if the application uses the virtual storage mode.
In the event handler, use the parameters provided to decrypt Data with the key identified with ObjectId. The InitIndicator and FinalIndicator tell whether the provided block is first and/or last in a sequence of blocks forming a multi-step decryption operation. If the block is not the last one, set CorrelationValue to a random string to preserve continuity between consecutive block decryptions.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
DeleteAttribute Event (KMIPServer Component)
Instructs the application to delete an object attribute.
Syntax
public event OnDeleteAttributeHandler OnDeleteAttribute; public delegate void OnDeleteAttributeHandler(object sender, KMIPServerDeleteAttributeEventArgs e); public class KMIPServerDeleteAttributeEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public string AttributeName { get; } public string AttributeValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnDeleteAttribute As OnDeleteAttributeHandler Public Delegate Sub OnDeleteAttributeHandler(sender As Object, e As KMIPServerDeleteAttributeEventArgs) Public Class KMIPServerDeleteAttributeEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property AttributeName As String Public Property AttributeValue As String Public Property OperationStatus As Integer End Class
Remarks
The server fires this event to relay the KMIP client's Delete Attribute request to the application if the application chose to use custom flow in the preceding BeforeEdit event.
The event handler is expected to delete the AttributeName from the ObjectId's attribute set, and return the (now deleted) AttributeValue and the OperationStatus back to the server.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
DeriveKey Event (KMIPServer Component)
Notifies the application of key derivation request.
Syntax
public event OnDeriveKeyHandler OnDeriveKey; public delegate void OnDeriveKeyHandler(object sender, KMIPServerDeriveKeyEventArgs e); public class KMIPServerDeriveKeyEventArgs : EventArgs { public long ConnectionId { get; } public int ObjectType { get; } public string ObjectIds { get; } public string DerivationMethod { get; } public byte[] InitializationVector { get; } public byte[] DerivationData { get; } public string NewKeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnDeriveKey As OnDeriveKeyHandler Public Delegate Sub OnDeriveKeyHandler(sender As Object, e As KMIPServerDeriveKeyEventArgs) Public Class KMIPServerDeriveKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectType As Integer Public ReadOnly Property ObjectIds As String Public ReadOnly Property DerivationMethod As String Public ReadOnly Property InitializationVector As Byte() Public ReadOnly Property DerivationData As Byte() Public Property NewKeyId As String Public Property OperationStatus As Integer End Class
Remarks
The server fires this event to notify the application of a received key derivation request. Applications working in virtual mode should react to this event by performing the requested operation and returning the ID of the new key via the NewKeyId parameter.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
Disconnect Event (KMIPServer Component)
Fires to report a disconnected client.
Syntax
public event OnDisconnectHandler OnDisconnect; public delegate void OnDisconnectHandler(object sender, KMIPServerDisconnectEventArgs e); public class KMIPServerDisconnectEventArgs : EventArgs { public long ConnectionID { get; } }
Public Event OnDisconnect As OnDisconnectHandler Public Delegate Sub OnDisconnectHandler(sender As Object, e As KMIPServerDisconnectEventArgs) Public Class KMIPServerDisconnectEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long End Class
Remarks
The component fires this event when a connected client disconnects.
Encrypt Event (KMIPServer Component)
Instructs the application to encrypt a chunk of data.
Syntax
public event OnEncryptHandler OnEncrypt; public delegate void OnEncryptHandler(object sender, KMIPServerEncryptEventArgs e); public class KMIPServerEncryptEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public byte[] Data { get; } public bool InitIndicator { get; } public bool FinalIndicator { get; } public string BlockCipherMode { get; } public int TagLength { get; } public string PaddingMethod { get; } public bool RandomIV { get; } public string IV { get; set; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnEncrypt As OnEncryptHandler Public Delegate Sub OnEncryptHandler(sender As Object, e As KMIPServerEncryptEventArgs) Public Class KMIPServerEncryptEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property Data As Byte() Public ReadOnly Property InitIndicator As Boolean Public ReadOnly Property FinalIndicator As Boolean Public ReadOnly Property BlockCipherMode As String Public ReadOnly Property TagLength As Integer Public ReadOnly Property PaddingMethod As String Public ReadOnly Property RandomIV As Boolean Public Property IV As String Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
The server uses this event to request the application to encrypt a data block with the provided set of parameters. This event is only fired if the application chose to use a custom encryption flow in the preceding BeforeEncrypt call.
In the event handler, use the parameters provided to encrypt Data with the key identified with ObjectId. The InitIndicator and FinalIndicator tell whether the provided block is first and/or last in a sequence of blocks forming a multi-step encryption operation. If the block is not last, set CorrelationValue to a random string to preserve continuity between consecutive block encryptions.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
Error Event (KMIPServer Component)
Information about errors during data delivery.
Syntax
public event OnErrorHandler OnError; public delegate void OnErrorHandler(object sender, KMIPServerErrorEventArgs e); public class KMIPServerErrorEventArgs : EventArgs { public long ConnectionID { get; } public int ErrorCode { get; } public bool Fatal { get; } public bool Remote { get; } public string Description { get; } }
Public Event OnError As OnErrorHandler Public Delegate Sub OnErrorHandler(sender As Object, e As KMIPServerErrorEventArgs) Public Class KMIPServerErrorEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long Public ReadOnly Property ErrorCode As Integer Public ReadOnly Property Fatal As Boolean Public ReadOnly Property Remote As Boolean Public ReadOnly Property Description As String End Class
Remarks
The event is fired in case of exceptional conditions during message processing.
ErrorCode contains an error code and Description contains a textual description of the error. For a list of valid error codes and their descriptions, please refer to the HTTPS section.
ExternalSign Event (KMIPServer Component)
Handles remote or external signing initiated by the server protocol.
Syntax
public event OnExternalSignHandler OnExternalSign; public delegate void OnExternalSignHandler(object sender, KMIPServerExternalSignEventArgs e); public class KMIPServerExternalSignEventArgs : EventArgs { public long ConnectionID { get; } public string OperationId { get; } public string HashAlgorithm { get; } public string Pars { get; } public string Data { get; } public string SignedData { get; set; } }
Public Event OnExternalSign As OnExternalSignHandler Public Delegate Sub OnExternalSignHandler(sender As Object, e As KMIPServerExternalSignEventArgs) Public Class KMIPServerExternalSignEventArgs Inherits EventArgs Public ReadOnly Property ConnectionID As Long Public ReadOnly Property OperationId As String Public ReadOnly Property HashAlgorithm As String Public ReadOnly Property Pars As String Public ReadOnly Property Data As String Public Property SignedData As String End Class
Remarks
Assign a handler to this event if you need to delegate a low-level signing operation to an external, remote, or custom signing engine. Depending on the settings, the handler will receive a hashed or unhashed value to be signed.
The event handler must pass the value of Data to the signer, obtain the signature, and pass it back to the component via the SignedData parameter.
OperationId provides a comment about the operation and its origin. It depends on the exact component being used, and may be empty. HashAlgorithm specifies the hash algorithm being used for the operation, and Pars contains algorithm-dependent parameters.
The component uses base16 (hex) encoding for the Data, SignedData, and Pars parameters. If your signing engine uses a different input and output encoding, you may need to decode and/or encode the data before and/or after the signing.
A sample MD5 hash encoded in base16: a0dee2a0382afbb09120ffa7ccd8a152 - lower case base16 A0DEE2A0382AFBB09120FFA7CCD8A152 - upper case base16
A sample event handler that uses the .NET RSACryptoServiceProvider class may look like the following:
signer.OnExternalSign += (s, e) =>
{
var cert = new X509Certificate2("cert.pfx", "", X509KeyStorageFlags.Exportable);
var key = (RSACryptoServiceProvider)cert.PrivateKey;
var dataToSign = e.Data.FromBase16String();
var signedData = key.SignHash(dataToSign, "2.16.840.1.101.3.4.2.1");
e.SignedData = signedData.ToBase16String();
};
Generate Event (KMIPServer Component)
Notifies the application about an incoming Generate request.
Syntax
public event OnGenerateHandler OnGenerate; public delegate void OnGenerateHandler(object sender, KMIPServerGenerateEventArgs e); public class KMIPServerGenerateEventArgs : EventArgs { public long ConnectionId { get; } public string PublicKeyId { get; } public string CertId { get; set; } public int OperationStatus { get; set; } }
Public Event OnGenerate As OnGenerateHandler Public Delegate Sub OnGenerateHandler(sender As Object, e As KMIPServerGenerateEventArgs) Public Class KMIPServerGenerateEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property PublicKeyId As String Public Property CertId As String Public Property OperationStatus As Integer End Class
Remarks
Subscribe to this event to get notified about incoming certificate generate requests. The PublicKeyId parameter specifies the public key that the new certificate should be generated over.
Applications using the server in virtual storage mode should implement the generation logic in the event handler and return the new CertId back along with OperationStatus.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
GenerateKey Event (KMIPServer Component)
Notifies the application about an incoming Generate request.
Syntax
public event OnGenerateKeyHandler OnGenerateKey; public delegate void OnGenerateKeyHandler(object sender, KMIPServerGenerateKeyEventArgs e); public class KMIPServerGenerateKeyEventArgs : EventArgs { public long ConnectionId { get; } public string KeyAlgorithm { get; } public int KeyLength { get; } public string Group { get; } public string KeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnGenerateKey As OnGenerateKeyHandler Public Delegate Sub OnGenerateKeyHandler(sender As Object, e As KMIPServerGenerateKeyEventArgs) Public Class KMIPServerGenerateKeyEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property KeyAlgorithm As String Public ReadOnly Property KeyLength As Integer Public ReadOnly Property Group As String Public Property KeyId As String Public Property OperationStatus As Integer End Class
Remarks
Subscribe to this event to get notified about incoming key generation requests. The KeyAlgorithm and KeyLength parameters specify the parameters of the key to be generated. Use the Group parameter to arrange together keys belonging to the same set, such as private and public parts of a keypair.
Applications using the server in virtual storage mode should implement the generation logic in the event handler and return the new KeyId back along with OperationStatus.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
GenerateKeyPair Event (KMIPServer Component)
Notifies the application about an incoming Generate request.
Syntax
public event OnGenerateKeyPairHandler OnGenerateKeyPair; public delegate void OnGenerateKeyPairHandler(object sender, KMIPServerGenerateKeyPairEventArgs e); public class KMIPServerGenerateKeyPairEventArgs : EventArgs { public long ConnectionId { get; } public string KeyAlgorithm { get; } public int KeyLength { get; } public string Scheme { get; } public string SchemeParams { get; } public string Group { get; } public string PrivateKeyId { get; set; } public string PublicKeyId { get; set; } public int OperationStatus { get; set; } }
Public Event OnGenerateKeyPair As OnGenerateKeyPairHandler Public Delegate Sub OnGenerateKeyPairHandler(sender As Object, e As KMIPServerGenerateKeyPairEventArgs) Public Class KMIPServerGenerateKeyPairEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property KeyAlgorithm As String Public ReadOnly Property KeyLength As Integer Public ReadOnly Property Scheme As String Public ReadOnly Property SchemeParams As String Public ReadOnly Property Group As String Public Property PrivateKeyId As String Public Property PublicKeyId As String Public Property OperationStatus As Integer End Class
Remarks
Subscribe to this event to get notified about incoming keypair generation requests. The KeyAlgorithm, KeyLength, Scheme and SchemeParams parameters specify the parameters of the keypair to be generated. Use the Group parameter to put together keys belonging to the same set, such as private and public parts of a keypair.
Applications using the server in virtual storage mode should implement the generation logic in the event handler and return the new PrivateKeyId and PublicKeyId back along with OperationStatus.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
GetUsageAllocation Event (KMIPServer Component)
Notifies the application about an incoming Get Usage Allocation request.
Syntax
public event OnGetUsageAllocationHandler OnGetUsageAllocation; public delegate void OnGetUsageAllocationHandler(object sender, KMIPServerGetUsageAllocationEventArgs e); public class KMIPServerGetUsageAllocationEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public int UsageLimitsCount { get; } public int OperationStatus { get; set; } }
Public Event OnGetUsageAllocation As OnGetUsageAllocationHandler Public Delegate Sub OnGetUsageAllocationHandler(sender As Object, e As KMIPServerGetUsageAllocationEventArgs) Public Class KMIPServerGetUsageAllocationEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property UsageLimitsCount As Integer Public Property OperationStatus As Integer End Class
Remarks
The component uses this event to tell the application about a Get Usage Allocation request received.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
Hash Event (KMIPServer Component)
Instructs the application to update the current hashing operation.
Syntax
public event OnHashHandler OnHash; public delegate void OnHashHandler(object sender, KMIPServerHashEventArgs e); public class KMIPServerHashEventArgs : EventArgs { public long ConnectionId { get; } public string ObjectId { get; } public string HashAlgorithm { get; } public byte[] Data { get; } public bool InitIndicator { get; } public bool FinalIndicator { get; } public string CorrelationValue { get; set; } public int OperationStatus { get; set; } }
Public Event OnHash As OnHashHandler Public Delegate Sub OnHashHandler(sender As Object, e As KMIPServerHashEventArgs) Public Class KMIPServerHashEventArgs Inherits EventArgs Public ReadOnly Property ConnectionId As Long Public ReadOnly Property ObjectId As String Public ReadOnly Property HashAlgorithm As String Public ReadOnly Property Data As Byte() Public ReadOnly Property InitIndicator As Boolean Public ReadOnly Property FinalIndicator As Boolean Public Property CorrelationValue As String Public Property OperationStatus As Integer End Class
Remarks
The server fires this event to pass a new chunk of data to the application for inclusion in the hash. This event is only fired if the application chose to process the hashing operation manually in the preceding BeforeHash event.
The ObjectId specifies the key object for Hash+MAC operations. The Data parameters contains the data buffer that needs to be added to the hash, with InitIndicator and FinalIndicator specifying the very first and very last data blocks respectively.
Return a unique CorrelationValue to chain pieces of a multi-block hashing operation together.
ostOk | 1 | |
ostNoSuchFile | 2 | |
ostAccessDenied | 3 | |
ostWriteProtect | 4 | |
ostUnsupported | 5 | |
ostInvalidParameter | 6 | |
ostEOF | 7 |
HeadersPrepared Event (KMIPServer Component)
Fires when the response headers have been formed and are ready to be sent to the server.
Syntax
public event OnHeadersPreparedHandler OnHeadersPrepared; public delegate void OnHeadersPreparedHandler(object sender,