Nicht laden PKCS11 Treiber mit IAIK-PKCS11-Wrapper

Ich bin mit dem folgenden:

  • Windows 7 64bit
  • JDK 7 64bit
  • JRE 7 64bit

Die neue lustige JRE 7 64bit nicht unterstützt, Sonne PKCS11 mehr (die ist im Paket 'sun.Sicherheit.pkcs11 -'). Und das große problem ist, dass der Endnutzer das Produkt von unserer Firma installiert haben kann, was auch immer-version von JRE.

Muss ich also tauschen Sie den vorhandenen code in "Sonne PKCS11' zu 'IAIK-PKCS11-Wrapper'. Die wrapper von IAIK funktioniert einfach auf diese Weise:

(iaik-wrapper.jar)->(iaik-pkcs11-jni.dll)->(pki-token-driver.dll)

PKI-token-Treiber dynamic link library ist von dem Hersteller von PKI-USB-token, hat es die tatsächlichen Namen der 'ca2-v34.dll'. Die Methode zum laden dieser native Treiber ist beschrieben im programmer ' s manual als unten:

import iaik.pkcs.pkcs11.*;
...

Module pkcs11Driver;
try {
  pkcs11Driver = Module.getInstance("ca2-v34.dll"); //<--exception!
  pkcs11Driver.initialize(null);

  //test
  System.out.println(pkcs11Driver.getInfo());
}
catch (Exception ex) {
  System.out.println(ex);
}

Die Ausnahme wird ausgelöst, an der markierten Linie in der obigen code, mit diesem detail: java.io.IOException: %1 ist keine gültige Win32-Anwendung.
ca2-v34.dll

Diese Ausnahme sicherlich bedeutet die IAIK-Bibliothek gefunden hat .dll Datei, aber es ist irgendwie nicht kompatibel. Ich bin hängengeblieben an diesem Flaschenhals.

Es sieht aus wie ca2-v34.dll ist ein 32-bit-DLL.
der Probe usb-token-manager, den unser Hersteller verwendet diese .dll-Datei für beide windows7-32bit und windows7-64bit. ich habe im Vergleich die zwei Dateien identisch sind, so glaube ich, dass diese dll verwendet werden kann, sowohl in 32bit und 64bit.
Das bedeutet nur, dass Ihre software ist 32-bit im gesamten. Sie können nicht mit einem 32-bit-DLL von 64-bit-software, zumindest nicht ohne Gebäude eine thunking Schicht, wenn das noch möglich ist: wir haben zu tun, dass ein bit in der 16-32 bit-übergang.
danke. ja du hast Recht, ich habe zu wechseln vorübergehend zu jre32 in der Lage sein zu erstellen und auszuführen. ich werde einen Antrag darum, die 64bit-Treiber-dll des Herstellers.

InformationsquelleAutor jondinham | 2013-01-08

Schreibe einen Kommentar