public interface IDVaultAPI
extends com.sun.jna.Library
JNA wrapper for some exported C functions that manipulate SAML assertions and id vault entries. This interface is wrapped by the KeepSAML class, and should not be used directly
Modifier and Type | Field and Description |
---|---|
static IDVaultAPI |
INSTANCE
requires a platform-specific native library on the PATH e.g., idvaultapi.dll or libidvaultapi.so
|
Modifier and Type | Method and Description |
---|---|
void |
freeUserIdHandle(java.lang.String handle,
com.sun.jna.Pointer KFHandle)
Free up memory associated with the user id handle
|
int |
getErrorString(short status,
com.sun.jna.Memory msgBuf,
int bufsize)
given a Notes status code, get the associated error string
|
int |
getHostNameFromDN(java.lang.String dn,
com.sun.jna.Memory hostName,
int bufsize)
given a server name in DN format (CN=sansimeon/O=projectkeep.io), fill a buffer with the HTTP host name (https://sansimeon.projectkeep.io) returns the length of the string in the buffer
|
short |
getIDHandle(java.lang.String idFile,
com.sun.jna.ptr.LongByReference pbr)
Convert an in-memory id file name to a Notes KFHANDLE value (void *)
|
int |
getSAMLRequest(java.lang.String userEmail,
java.lang.String dominoName,
com.sun.jna.Memory SAMLbuffer,
int SAMLbufSize,
com.sun.jna.Memory vaultBuffer,
int vaultSize)
Format a SAML assertion request for the configured IDP given a user email and domino DN.
|
short |
getUserIdHandle(java.lang.String userEmail,
java.lang.String dominoName,
java.lang.String vaultName,
java.lang.String SAMLAssertion,
int isB64Encoded,
com.sun.jna.Memory idfilebuf,
int bufsize)
Given a valid SAML assertion XML string, get the handle associated with the user’s ID file
|
static final IDVaultAPI INSTANCE
requires a platform-specific native library on the PATH e.g., idvaultapi.dll or libidvaultapi.so
int getSAMLRequest(java.lang.String userEmail, java.lang.String dominoName, com.sun.jna.Memory SAMLbuffer, int SAMLbufSize, com.sun.jna.Memory vaultBuffer, int vaultSize)
Format a SAML assertion request for the configured IDP given a user email and domino DN. Fills in the byte array,
userEmail
- xyzzy@google.com or whateverdominoName
- CN=xyzzy/O=org or whateverSAMLbuffer
- returned saml request xmlSAMLbufSize
- size of SAMLbuffer in bytes (must be big, say 10KB)vaultBuffer
- returned idvault namevaultSize
- size of vaultBuffer in bytesshort getUserIdHandle(java.lang.String userEmail, java.lang.String dominoName, java.lang.String vaultName, java.lang.String SAMLAssertion, int isB64Encoded, com.sun.jna.Memory idfilebuf, int bufsize)
Given a valid SAML assertion XML string, get the handle associated with the user’s ID file
userEmail
- xyzzy@google.com or whateverdominoName
- CN=xyzzy/O=org or whatevervaultName
- name returned from getSAMLRequestSAMLAssertion
- assertion response xmlisB64Encoded
- should always be true, DO NOT SUBMIT CLEAR TEXTidfilebuf
- returned in-memory file namebufsize
- size of idfilebuf in bytesvoid freeUserIdHandle(java.lang.String handle, com.sun.jna.Pointer KFHandle) throws com.sun.jna.LastErrorException
Free up memory associated with the user id handle
handle
- id file namecom.sun.jna.LastErrorException
- JNA errorint getErrorString(short status, com.sun.jna.Memory msgBuf, int bufsize)
given a Notes status code, get the associated error string
status
- Notes status codemsgBuf
- returned error message (generally less than 1KB)bufsize
- size of msgBuf in bytesint getHostNameFromDN(java.lang.String dn, com.sun.jna.Memory hostName, int bufsize)
given a server name in DN format (CN=sansimeon/O=projectkeep.io), fill a buffer with the HTTP host name (https://sansimeon.projectkeep.io) returns the length of the string in the buffer
dn
- Distinguished name of serverhostName
- returned internet host namebufsize
- size of hostName in bytesshort getIDHandle(java.lang.String idFile, com.sun.jna.ptr.LongByReference pbr)
Convert an in-memory id file name to a Notes KFHANDLE value (void *)
idFile
- file namepbr
- returned KFHANDLE