Forum » Programiranje » [Java] Dostop do Firefox Keystore
[Java] Dostop do Firefox Keystore
Kael ::
Pozdravljeni!
Dobil sem nalogo implementirat aplet, ki bi omogočal na client strani elektronsko podpisovanje e-dokumentov s certifikati. V specifikaciji zahtev je meddrugim tudi to, da mora zadeva podpirati certifikate shranjene v Windows Keystore ter Firefox Keystore. Z Windows Keystore nimam nobenih težav, z Firefox Keystore pa kolikor hočeš. Java naj bi sicer že od JDK podpirala dostop do Firefox Keystore preko PCKS11 implementacije, vendar je primerov navkljub ne uspem usposobiti, prav tako, pa preko te implementacije (sodeč po forumih) niso dostopni certifikati na na napravah, kot je npr. Active Card. Edina prava je potem uporaba JSS knjižnice, s katero imam nemalo problemov. Vljudno bi prosil, če se je kdo s tem že ukvarjal, kako rešiti naslednje zadeve:
1) Če v Firefox uvoziš certifikat, je lokacija keystora podobna temu: C:\Documents and Settings\sampleUser\Application Data\Mozilla\Firefox\Profiles\z8xkwtww.default. A je mogoče to pot kako ugotoviti, da nebi bilo treba hard-coded tadi noter %APPDATA% in potem iskati ustrezno mapo?
2) Prevedel sem zadnjo verzijo JSS knjižnice, NSS in NSPR in nastavil ustrezne parametre za prevod knjižnic. Te knjižnice sem dal v mapo C:\jssLib ter znotraj nje še jss4.jar v mapo C:\jssLib\jss + dodal pot v PATH spremenljivko v Windowsih. Vsakič ko skušam inicializirati CryptoManager dobim na enem od testnih računalnikov dobim spodnje sporočilo (koda pade v vrstici initialize). Če rečem System.getProperty("java.library.path") je pod do jss v pathu. Ve kdo rešitev, oz vzrok temu. Računalnik ima Ie8, Windows Xp Sp3, inšaliran Microsoft Visual Studio 2008 Redistributable package.
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\jssLib\jss4.dll: The specified procedure could not be found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at org.mozilla.jss.CryptoManager.loadNativeLibraries(CryptoManager.java:1443)
at org.mozilla.jss.CryptoManager.initialize(CryptoManager.java:912)
at org.mozilla.jss.CryptoManager.initialize(CryptoManager.java:885)
at testdelovanja.Main.test(Main.java:64)
at testdelovanja.Main.main(Main.java:257)
Java Result: 1
public class Main
{
public Main()
{
}
public void test(String[] argv) throws Exception
{
CryptoManager.initialize("C:\\Documents and Settings\\sampleUser\\Application Data\\Mozilla\\Firefox\\Profiles\\z8xkwtww.default");
CryptoManager cm = CryptoManager.getInstance();
}
}
Lp,
Kael
Dobil sem nalogo implementirat aplet, ki bi omogočal na client strani elektronsko podpisovanje e-dokumentov s certifikati. V specifikaciji zahtev je meddrugim tudi to, da mora zadeva podpirati certifikate shranjene v Windows Keystore ter Firefox Keystore. Z Windows Keystore nimam nobenih težav, z Firefox Keystore pa kolikor hočeš. Java naj bi sicer že od JDK podpirala dostop do Firefox Keystore preko PCKS11 implementacije, vendar je primerov navkljub ne uspem usposobiti, prav tako, pa preko te implementacije (sodeč po forumih) niso dostopni certifikati na na napravah, kot je npr. Active Card. Edina prava je potem uporaba JSS knjižnice, s katero imam nemalo problemov. Vljudno bi prosil, če se je kdo s tem že ukvarjal, kako rešiti naslednje zadeve:
1) Če v Firefox uvoziš certifikat, je lokacija keystora podobna temu: C:\Documents and Settings\sampleUser\Application Data\Mozilla\Firefox\Profiles\z8xkwtww.default. A je mogoče to pot kako ugotoviti, da nebi bilo treba hard-coded tadi noter %APPDATA% in potem iskati ustrezno mapo?
2) Prevedel sem zadnjo verzijo JSS knjižnice, NSS in NSPR in nastavil ustrezne parametre za prevod knjižnic. Te knjižnice sem dal v mapo C:\jssLib ter znotraj nje še jss4.jar v mapo C:\jssLib\jss + dodal pot v PATH spremenljivko v Windowsih. Vsakič ko skušam inicializirati CryptoManager dobim na enem od testnih računalnikov dobim spodnje sporočilo (koda pade v vrstici initialize). Če rečem System.getProperty("java.library.path") je pod do jss v pathu. Ve kdo rešitev, oz vzrok temu. Računalnik ima Ie8, Windows Xp Sp3, inšaliran Microsoft Visual Studio 2008 Redistributable package.
Exception in thread "main" java.lang.UnsatisfiedLinkError: C:\jssLib\jss4.dll: The specified procedure could not be found
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1728)
at java.lang.Runtime.loadLibrary0(Runtime.java:823)
at java.lang.System.loadLibrary(System.java:1028)
at org.mozilla.jss.CryptoManager.loadNativeLibraries(CryptoManager.java:1443)
at org.mozilla.jss.CryptoManager.initialize(CryptoManager.java:912)
at org.mozilla.jss.CryptoManager.initialize(CryptoManager.java:885)
at testdelovanja.Main.test(Main.java:64)
at testdelovanja.Main.main(Main.java:257)
Java Result: 1
public class Main
{
public Main()
{
}
public void test(String[] argv) throws Exception
{
CryptoManager.initialize("C:\\Documents and Settings\\sampleUser\\Application Data\\Mozilla\\Firefox\\Profiles\\z8xkwtww.default");
CryptoManager cm = CryptoManager.getInstance();
}
}
Lp,
Kael
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Eclipse in windows 8Oddelek: Pomoč in nasveti | 1238 (991) | mihibo5 |
» | [android] vstavljanje slikeOddelek: Programiranje | 1247 (1144) | messi |
» | [java] system.setproperty xml apis vec implementacij naenkratOddelek: Programiranje | 2703 (2162) | Fizikalko |
» | Java- hibernate.properties not foundOddelek: Programiranje | 1797 (1297) | xsenon |
» | E-davki in oddaja dohodnike (bliža se dan) (strani: 1 2 )Oddelek: Loža | 8690 (6653) | kriko1 |