Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package one.video.streaming.oktp;
- import java.math.BigInteger;
- import java.security.InvalidAlgorithmParameterException;
- import java.security.KeyFactory;
- import java.security.KeyPair;
- import java.security.KeyPairGenerator;
- import java.security.NoSuchAlgorithmException;
- import javax.crypto.KeyAgreement;
- import javax.crypto.spec.DHParameterSpec;
- import javax.crypto.spec.DHPublicKeySpec;
- public class DHCrypt {
- private final KeyPair _keyPair;
- private byte[] _sharedKey;
- private byte[] _peerKey;
- private static final BigInteger _prime;
- private static final BigInteger _generator;
- static {
- DHCrypt._prime = new BigInteger("FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7EDEE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3DC2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F83655D23DCA3AD961C62F356208552BB9ED529077096966D670C354E4ABC9804F1746C08CA18217C32905E462E36CE3BE39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9DE2BCBF6955817183995497CEA956AE515D2261898FA051015728E5A8AACAA68FFFFFFFFFFFFFFFF", 16);
- DHCrypt._generator = new BigInteger("2");
- }
- DHCrypt() {
- super();
- try {
- KeyPairGenerator keyGen = KeyPairGenerator.getInstance("DH");
- keyGen.initialize(new DHParameterSpec(DHCrypt._prime, DHCrypt._generator));
- this._keyPair = keyGen.generateKeyPair();
- return;
- }
- catch(NoSuchAlgorithmException v0) {
- }
- catch(InvalidAlgorithmParameterException v0_1) {
- }
- throw new RuntimeException(((Throwable)v0_1));
- }
- public byte[] publicKey() {
- return this._keyPair.getPublic().getY().toByteArray();
- }
- public void computeSharedKey(byte[] peerKey) {
- this._peerKey = peerKey;
- try {
- KeyAgreement key = KeyAgreement.getInstance("DH");
- key.init(this._keyPair.getPrivate());
- key.doPhase(KeyFactory.getInstance("DH").generatePublic(new DHPublicKeySpec(new BigInteger(1, peerKey), DHCrypt._prime, DHCrypt._generator)), true);
- this._sharedKey = key.generateSecret();
- }
- catch(Exception e) {
- e.printStackTrace();
- }
- }
- public byte[] sharedKey() {
- return this._sharedKey;
- }
- public byte[] peerKey() {
- return this._peerKey;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement