~brian-thomason/+junk/bouncycastle

« back to all changes in this revision

Viewing changes to src/org/bouncycastle/jce/provider/ElGamalUtil.java

  • Committer: Brian Thomason
  • Date: 2011-12-20 17:20:32 UTC
  • Revision ID: brian.thomason@canonical.com-20111220172032-rdtm13jgdxtksacr
Initial import

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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.ElGamalParameters;
 
12
import org.bouncycastle.crypto.params.ElGamalPrivateKeyParameters;
 
13
import org.bouncycastle.crypto.params.ElGamalPublicKeyParameters;
 
14
import org.bouncycastle.jce.interfaces.ElGamalPrivateKey;
 
15
import org.bouncycastle.jce.interfaces.ElGamalPublicKey;
 
16
 
 
17
/**
 
18
 * utility class for converting jce/jca ElGamal objects
 
19
 * objects into their org.bouncycastle.crypto counterparts.
 
20
 */
 
21
public class ElGamalUtil
 
22
{
 
23
    static public AsymmetricKeyParameter generatePublicKeyParameter(
 
24
        PublicKey    key)
 
25
        throws InvalidKeyException
 
26
    {
 
27
        if (key instanceof ElGamalPublicKey)
 
28
        {
 
29
            ElGamalPublicKey    k = (ElGamalPublicKey)key;
 
30
 
 
31
            return new ElGamalPublicKeyParameters(k.getY(),
 
32
                new ElGamalParameters(k.getParameters().getP(), k.getParameters().getG()));
 
33
        }
 
34
        else if (key instanceof DHPublicKey)
 
35
        {
 
36
            DHPublicKey    k = (DHPublicKey)key;
 
37
 
 
38
            return new ElGamalPublicKeyParameters(k.getY(),
 
39
                new ElGamalParameters(k.getParams().getP(), k.getParams().getG()));
 
40
        }
 
41
 
 
42
        throw new InvalidKeyException("can't identify public key for El Gamal.");
 
43
    }
 
44
 
 
45
    static public AsymmetricKeyParameter generatePrivateKeyParameter(
 
46
        PrivateKey    key)
 
47
        throws InvalidKeyException
 
48
    {
 
49
        if (key instanceof ElGamalPrivateKey)
 
50
        {
 
51
            ElGamalPrivateKey    k = (ElGamalPrivateKey)key;
 
52
 
 
53
            return new ElGamalPrivateKeyParameters(k.getX(),
 
54
                new ElGamalParameters(k.getParameters().getP(), k.getParameters().getG()));
 
55
        }
 
56
        else if (key instanceof DHPrivateKey)
 
57
        {
 
58
            DHPrivateKey    k = (DHPrivateKey)key;
 
59
 
 
60
            return new ElGamalPrivateKeyParameters(k.getX(),
 
61
                new ElGamalParameters(k.getParams().getP(), k.getParams().getG()));
 
62
        }
 
63
                        
 
64
        throw new InvalidKeyException("can't identify private key for El Gamal.");
 
65
    }
 
66
}