Class NativeBase

  • Direct Known Subclasses:
    NativeBridge

    public class NativeBase
    extends java.lang.Object
    base functions used to communicate with the signature pads per jna and hid
    • Field Detail

      • hidDevice

        protected purejavahidapi.HidDevice hidDevice
      • hidDeviceInfo

        protected purejavahidapi.HidDeviceInfo hidDeviceInfo
      • isWindows

        protected boolean isWindows
      • isLinux

        protected boolean isLinux
      • isMac

        protected boolean isMac
      • log

        protected final java.util.logging.Logger log
      • HID_CMD_ENABLE_DRAWING

        public static final byte HID_CMD_ENABLE_DRAWING
        See Also:
        Constant Field Values
      • HID_CMD_SET_ORIENTATION

        public static final byte HID_CMD_SET_ORIENTATION
        See Also:
        Constant Field Values
      • HID_CMD_READ_BITMAP_PARAM

        public static final byte HID_CMD_READ_BITMAP_PARAM
        See Also:
        Constant Field Values
      • HID_CMD_SET_PRE_DOC_HASH

        public static final byte HID_CMD_SET_PRE_DOC_HASH
        See Also:
        Constant Field Values
      • HID_CMD_SET_FINAL_DOCUMENT_HASH

        public static final byte HID_CMD_SET_FINAL_DOCUMENT_HASH
        See Also:
        Constant Field Values
      • HID_CMD_PERSIST_ROTATION_STATE

        public static final byte HID_CMD_PERSIST_ROTATION_STATE
        See Also:
        Constant Field Values
      • HID_CMD_READ_TRANSFER_RAM

        public static final byte HID_CMD_READ_TRANSFER_RAM
        See Also:
        Constant Field Values
      • HID_CMD_CLEAR_TRANSFER_RAM

        public static final byte HID_CMD_CLEAR_TRANSFER_RAM
        See Also:
        Constant Field Values
      • HID_CMD_COPY_RAM_TO_BUFFER

        public static final byte HID_CMD_COPY_RAM_TO_BUFFER
        See Also:
        Constant Field Values
      • HID_CMD_DIRECT_WRITE_TO_BUF

        public static final byte HID_CMD_DIRECT_WRITE_TO_BUF
        See Also:
        Constant Field Values
      • HID_CMD_COPY_DATA_TO_RAM

        public static final byte HID_CMD_COPY_DATA_TO_RAM
        See Also:
        Constant Field Values
      • HID_CMD_GET_USER_INPUT

        public static final byte HID_CMD_GET_USER_INPUT
        See Also:
        Constant Field Values
      • HID_CMD_SET_PAGE_NUM_STR

        public static final byte HID_CMD_SET_PAGE_NUM_STR
        See Also:
        Constant Field Values
      • HID_CMD_RELOAD_BITMAP_FROM_BUFFER

        public static final byte HID_CMD_RELOAD_BITMAP_FROM_BUFFER
        See Also:
        Constant Field Values
      • HID_CMD_CREATE_SIGNATURE_RECTANGLE

        public static final byte HID_CMD_CREATE_SIGNATURE_RECTANGLE
        See Also:
        Constant Field Values
      • HID_CMD_WRITE_FRAMEBUF_DATA

        public static final byte HID_CMD_WRITE_FRAMEBUF_DATA
        See Also:
        Constant Field Values
      • HID_CMD_SET_BUTTON_ENABLED_STATE

        public static final byte HID_CMD_SET_BUTTON_ENABLED_STATE
        See Also:
        Constant Field Values
      • CMD_SSP_MESSAGE_RECEIVE

        public static final byte CMD_SSP_MESSAGE_RECEIVE
        See Also:
        Constant Field Values
      • HID_COPYDATA_ID_RSAENC_AESKEY

        public static final byte HID_COPYDATA_ID_RSAENC_AESKEY
        See Also:
        Constant Field Values
      • HID_COPYDATA_ID_SIGNED_DOCHASH

        public static final byte HID_COPYDATA_ID_SIGNED_DOCHASH
        See Also:
        Constant Field Values
      • HID_COPYDATA_ID_PUBLIC_KEY1

        public static final byte HID_COPYDATA_ID_PUBLIC_KEY1
        See Also:
        Constant Field Values
      • HID_COPYDATA_ID_CERTIFICATE

        public static final byte HID_COPYDATA_ID_CERTIFICATE
        See Also:
        Constant Field Values
      • HID_COPYDATA_ID_NOTARY_INFO

        public static final byte HID_COPYDATA_ID_NOTARY_INFO
        See Also:
        Constant Field Values
      • HID_COPYDATA_BOOTLOADER_INFO

        public static final byte HID_COPYDATA_BOOTLOADER_INFO
        See Also:
        Constant Field Values
      • HID_USER_INPUT_NO_BUTTON

        public static final byte HID_USER_INPUT_NO_BUTTON
        See Also:
        Constant Field Values
      • HID_USER_INPUT_OK_BUTTON

        public static final byte HID_USER_INPUT_OK_BUTTON
        See Also:
        Constant Field Values
      • HID_USER_INPUT_REPEAT_BUTTON

        public static final byte HID_USER_INPUT_REPEAT_BUTTON
        See Also:
        Constant Field Values
      • HID_USER_INPUT_CANCEL_BUTTON

        public static final byte HID_USER_INPUT_CANCEL_BUTTON
        See Also:
        Constant Field Values
      • SSP_CMD_MODE_ENUMERATE

        public static final byte SSP_CMD_MODE_ENUMERATE
        See Also:
        Constant Field Values
      • SSP_CMD_GET_COMPONENT_OVERVIEW

        public static final byte SSP_CMD_GET_COMPONENT_OVERVIEW
        See Also:
        Constant Field Values
      • SSP_BUTTON_LAST_EVENT_GET_SIGN

        public static final byte SSP_BUTTON_LAST_EVENT_GET_SIGN
        See Also:
        Constant Field Values
      • SSP_BUTTON_LAST_EVENT_GET_DOC_VIEW

        public static final byte SSP_BUTTON_LAST_EVENT_GET_DOC_VIEW
        See Also:
        Constant Field Values
      • SSP_BUTTON_LAST_EVENT_REFRESH_DOC_VIEW

        public static final byte SSP_BUTTON_LAST_EVENT_REFRESH_DOC_VIEW
        See Also:
        Constant Field Values
      • SSP_BUTTON_LAST_EVENT_GET

        public static final byte SSP_BUTTON_LAST_EVENT_GET
        See Also:
        Constant Field Values
      • SSP_CONFIGURATION_VARIABLE_SET

        public static final byte SSP_CONFIGURATION_VARIABLE_SET
        See Also:
        Constant Field Values
      • CONFIGURATION_COMPONENT

        public static final byte CONFIGURATION_COMPONENT
        See Also:
        Constant Field Values
      • PAD_MODE_CUSTOMER_LOGO

        public static final byte PAD_MODE_CUSTOMER_LOGO
        See Also:
        Constant Field Values
      • PAD_MODE_SIGNATURE_BMP_PREPARE

        public static final byte PAD_MODE_SIGNATURE_BMP_PREPARE
        See Also:
        Constant Field Values
      • PAD_MODE_SIGNATURE_BMP_RUN

        public static final byte PAD_MODE_SIGNATURE_BMP_RUN
        See Also:
        Constant Field Values
      • PAD_MODE_PAD_OPEN_SIGN

        public static final byte PAD_MODE_PAD_OPEN_SIGN
        See Also:
        Constant Field Values
      • PAD_MODE_PAD_OPEN_DIRECT

        public static final byte PAD_MODE_PAD_OPEN_DIRECT
        See Also:
        Constant Field Values
      • commandTimeOuts

        protected static java.util.HashMap<java.lang.Byte,​java.lang.Integer> commandTimeOuts
      • configurationComponent

        protected java.lang.Byte configurationComponent
      • components

        protected byte[] components
      • signatureMode

        protected java.lang.Integer signatureMode
      • signPadComponent

        protected java.lang.Byte signPadComponent
      • firmwareVersion

        protected int firmwareVersion
      • padOpened

        protected boolean padOpened
      • signatureTimeout

        protected java.lang.Integer signatureTimeout
      • acceptSignature

        protected volatile boolean acceptSignature
      • stopInputReport

        protected volatile boolean stopInputReport
      • signatureImageThread

        protected java.lang.Thread signatureImageThread
      • buttonThread

        protected java.lang.Thread buttonThread
      • keepAliveThread

        protected java.lang.Thread keepAliveThread
      • signedFinalDocHashThread

        protected java.lang.Thread signedFinalDocHashThread
      • bioDataOutputStream

        protected volatile java.io.DataOutputStream bioDataOutputStream
      • bioDataByteArrayOutputStream

        protected volatile java.io.ByteArrayOutputStream bioDataByteArrayOutputStream
      • currentSignatureImage

        protected volatile java.awt.image.BufferedImage currentSignatureImage
      • scaledSignatureImage

        protected volatile java.awt.image.BufferedImage scaledSignatureImage
      • signSession

        protected java.lang.String signSession
      • signedFinalDocHash

        protected byte[] signedFinalDocHash
      • pdfFile

        protected java.io.File pdfFile
    • Constructor Detail

      • NativeBase

        public NativeBase()
      • NativeBase

        public NativeBase​(java.lang.String identifier)
      • NativeBase

        public NativeBase​(purejavahidapi.HidDevice hidDevice)
    • Method Detail

      • sendFeature

        public byte[] sendFeature​(byte[] feature,
                                  purejavahidapi.HidDevice device)
                           throws java.io.IOException
        Throws:
        java.io.IOException
      • sendOutput

        public int sendOutput​(byte[] output,
                              purejavahidapi.HidDevice device)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • sendFeature

        protected byte[] sendFeature​(byte[] feature,
                                     purejavahidapi.HidDevice device,
                                     boolean returnReport)
                              throws java.io.IOException
        Throws:
        java.io.IOException
      • readTransferRam

        protected byte[] readTransferRam​(purejavahidapi.HidDevice device)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • base64Encode

        protected java.lang.String base64Encode​(byte[] data)
      • isDuraSign

        protected boolean isDuraSign​(purejavahidapi.HidDeviceInfo deviceInfo)
      • isG13

        protected boolean isG13​(purejavahidapi.HidDeviceInfo deviceInfo)
      • isG12

        protected boolean isG12​(purejavahidapi.HidDeviceInfo deviceInfo)
      • setConfiguration

        public byte setConfiguration​(java.lang.String key,
                                     java.lang.String valueStr)
      • sspSend

        public byte[] sspSend​(byte component,
                              byte[] message)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • sspReceive

        protected byte[] sspReceive​(byte component,
                                    byte message)
                             throws java.io.IOException
        Throws:
        java.io.IOException
      • setPadMode

        public byte[] setPadMode​(byte mode,
                                 java.lang.Byte parameter)
                          throws java.io.IOException
        Throws:
        java.io.IOException
      • getComponent

        public java.lang.Byte getComponent​(byte componentType)
                                    throws java.io.IOException
        Throws:
        java.io.IOException
      • getMode

        public java.lang.Integer getMode​(byte component,
                                         int modeType)
                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • isAllZero

        protected boolean isAllZero​(byte[] buffer)
      • printBits

        public void printBits​(byte[] bytes)
      • printBitsDebug

        public void printBitsDebug​(byte[] bytes)
      • setAcceptSignature

        protected void setAcceptSignature​(boolean state)
      • isAcceptSignature

        protected boolean isAcceptSignature()
      • setStopInputReport

        protected void setStopInputReport​(boolean state)
      • isStopInputReport

        protected boolean isStopInputReport()
      • isConfigComponentReady

        protected boolean isConfigComponentReady()
      • destroy

        protected void destroy​(boolean disconnect)
      • finishSigning

        protected void finishSigning()
      • javaPKCS7

        protected java.lang.String javaPKCS7​(byte[] hash,
                                             byte[] signatureCertificate)
      • isAllEmpty

        public boolean isAllEmpty​(byte[] data)