2013-03-19 50 views
1

我有一塊硬件,它實現了一些像隨機數生成(如智能卡)的加密功能。 我想在我的TLS hadshake期間使用這個硬件。是否有可能做到這一點,而不用自己實施TLS-Handshake?在Java中使用自己的隨機數的TLS握手

我試圖擴展類「SecureRandom」,但「下一個」方法是最終的,所以我不能重寫它,以便它會返回'我的'遺傳數字。

所以基本上我想「外包」所有的加密函數而不用在JAVA中實現TLS握手。

感謝

+0

SecureRandom最重要的是種子,剩下的是可預測的,因爲算法不可更新,所以我想也許你可以使用StarmtCard生成隨機種子並使用SecureRandom(byte [] seed) – BlackJoker 2013-03-19 14:50:29

回答

1

擴展SecureRandomSpi代替。然後執行一項Provider或者做一個廉價的SecureRandom

public MySecureRandom() 
    throws NoSuchAlgorithmException, NoSuchProviderException { 
     super(new MySecureRandom(),null); 
    } 

(的next的實現依賴於給定的SPI)

然後你SecureRandom作爲參數傳遞給SSLContext.init