Home | History | Annotate | Download | only in provider
      1 package org.bouncycastle.jce.provider;
      2 
      3 import java.security.InvalidKeyException;
      4 import java.security.PrivateKey;
      5 import java.security.PublicKey;
      6 
      7 import javax.crypto.interfaces.DHPrivateKey;
      8 import javax.crypto.interfaces.DHPublicKey;
      9 
     10 import org.bouncycastle.crypto.params.AsymmetricKeyParameter;
     11 import org.bouncycastle.crypto.params.DHParameters;
     12 import org.bouncycastle.crypto.params.DHPrivateKeyParameters;
     13 import org.bouncycastle.crypto.params.DHPublicKeyParameters;
     14 
     15 /**
     16  * utility class for converting jce/jca DH objects
     17  * objects into their org.bouncycastle.crypto counterparts.
     18  */
     19 public class DHUtil
     20 {
     21     static public AsymmetricKeyParameter generatePublicKeyParameter(
     22         PublicKey    key)
     23         throws InvalidKeyException
     24     {
     25         if (key instanceof DHPublicKey)
     26         {
     27             DHPublicKey    k = (DHPublicKey)key;
     28 
     29             return new DHPublicKeyParameters(k.getY(),
     30                 new DHParameters(k.getParams().getP(), k.getParams().getG(), null, k.getParams().getL()));
     31         }
     32 
     33         throw new InvalidKeyException("can't identify DH public key.");
     34     }
     35 
     36     static public AsymmetricKeyParameter generatePrivateKeyParameter(
     37         PrivateKey    key)
     38         throws InvalidKeyException
     39     {
     40         if (key instanceof DHPrivateKey)
     41         {
     42             DHPrivateKey    k = (DHPrivateKey)key;
     43 
     44             return new DHPrivateKeyParameters(k.getX(),
     45                 new DHParameters(k.getParams().getP(), k.getParams().getG(), null, k.getParams().getL()));
     46         }
     47 
     48         throw new InvalidKeyException("can't identify DH private key.");
     49     }
     50 }
     51