home *** CD-ROM | disk | FTP | other *** search
/ Sky at Night 2007 June / SAN CD 6-2007 CD-ROM 25.iso / pc / Software / AstroGrav_Win / Java / jre1.6.0 / lib / rt.jar / java / security / SignatureSpi.class (.txt) < prev    next >
Encoding:
Java Class File  |  2006-11-29  |  2.5 KB  |  96 lines

  1. package java.security;
  2.  
  3. import java.nio.ByteBuffer;
  4. import java.security.spec.AlgorithmParameterSpec;
  5. import sun.security.jca.JCAUtil;
  6.  
  7. public abstract class SignatureSpi {
  8.    protected SecureRandom appRandom = null;
  9.  
  10.    protected abstract void engineInitVerify(PublicKey var1) throws InvalidKeyException;
  11.  
  12.    protected abstract void engineInitSign(PrivateKey var1) throws InvalidKeyException;
  13.  
  14.    protected void engineInitSign(PrivateKey var1, SecureRandom var2) throws InvalidKeyException {
  15.       this.appRandom = var2;
  16.       this.engineInitSign(var1);
  17.    }
  18.  
  19.    protected abstract void engineUpdate(byte var1) throws SignatureException;
  20.  
  21.    protected abstract void engineUpdate(byte[] var1, int var2, int var3) throws SignatureException;
  22.  
  23.    protected void engineUpdate(ByteBuffer var1) {
  24.       if (var1.hasRemaining()) {
  25.          try {
  26.             if (var1.hasArray()) {
  27.                byte[] var2 = var1.array();
  28.                int var3 = var1.arrayOffset();
  29.                int var4 = var1.position();
  30.                int var5 = var1.limit();
  31.                this.engineUpdate(var2, var3 + var4, var5 - var4);
  32.                var1.position(var5);
  33.             } else {
  34.                int var7 = var1.remaining();
  35.  
  36.                int var9;
  37.                for(byte[] var8 = new byte[JCAUtil.getTempArraySize(var7)]; var7 > 0; var7 -= var9) {
  38.                   var9 = Math.min(var7, var8.length);
  39.                   var1.get(var8, 0, var9);
  40.                   this.engineUpdate(var8, 0, var9);
  41.                }
  42.             }
  43.  
  44.          } catch (SignatureException var6) {
  45.             throw new ProviderException("update() failed", var6);
  46.          }
  47.       }
  48.    }
  49.  
  50.    protected abstract byte[] engineSign() throws SignatureException;
  51.  
  52.    protected int engineSign(byte[] var1, int var2, int var3) throws SignatureException {
  53.       byte[] var4 = this.engineSign();
  54.       if (var3 < var4.length) {
  55.          throw new SignatureException("partial signatures not returned");
  56.       } else if (var1.length - var2 < var4.length) {
  57.          throw new SignatureException("insufficient space in the output buffer to store the signature");
  58.       } else {
  59.          System.arraycopy(var4, 0, var1, var2, var4.length);
  60.          return var4.length;
  61.       }
  62.    }
  63.  
  64.    protected abstract boolean engineVerify(byte[] var1) throws SignatureException;
  65.  
  66.    protected boolean engineVerify(byte[] var1, int var2, int var3) throws SignatureException {
  67.       byte[] var4 = new byte[var3];
  68.       System.arraycopy(var1, var2, var4, 0, var3);
  69.       return this.engineVerify(var4);
  70.    }
  71.  
  72.    /** @deprecated */
  73.    @Deprecated
  74.    protected abstract void engineSetParameter(String var1, Object var2) throws InvalidParameterException;
  75.  
  76.    protected void engineSetParameter(AlgorithmParameterSpec var1) throws InvalidAlgorithmParameterException {
  77.       throw new UnsupportedOperationException();
  78.    }
  79.  
  80.    protected AlgorithmParameters engineGetParameters() {
  81.       throw new UnsupportedOperationException();
  82.    }
  83.  
  84.    /** @deprecated */
  85.    @Deprecated
  86.    protected abstract Object engineGetParameter(String var1) throws InvalidParameterException;
  87.  
  88.    public Object clone() throws CloneNotSupportedException {
  89.       if (this instanceof Cloneable) {
  90.          return super.clone();
  91.       } else {
  92.          throw new CloneNotSupportedException();
  93.       }
  94.    }
  95. }
  96.