OSDN Git Service

2006-08-14 Mark Wielaard <mark@klomp.org>
[pf3gnuchains/gcc-fork.git] / libjava / classpath / gnu / javax / crypto / key / srp6 / SRPKeyPairRawCodec.java
index 39234b6..555dc23 100644 (file)
@@ -47,116 +47,93 @@ import java.security.PrivateKey;
 import java.security.PublicKey;
 
 /**
- * <p>An object that implements the {@link IKeyPairCodec} operations for the
- * <i>Raw</i> format to use with SRP keypairs.</p>
- *
- * <p>Reference:</p>
+ * An object that implements the {@link IKeyPairCodec} operations for the
+ * <i>Raw</i> format to use with SRP keypairs.
+ * <p>
+ * Reference:
  * <ol>
- *    <li><a href="http://srp.stanford.edu/design.html">SRP Protocol Design</a><br>
- *    Thomas J. Wu.</li>
+ * <li><a href="http://srp.stanford.edu/design.html">SRP Protocol Design</a><br>
+ * Thomas J. Wu.</li>
  * </ol>
  */
-public class SRPKeyPairRawCodec implements IKeyPairCodec
+public class SRPKeyPairRawCodec
+    implements IKeyPairCodec
 {
-
-  // Constants and variables
-  // -------------------------------------------------------------------------
-
-  // Constructor(s)
-  // -------------------------------------------------------------------------
-
   // implicit 0-arguments constructor
 
-  // Class methods
-  // -------------------------------------------------------------------------
-
-  // Instance methods
-  // -------------------------------------------------------------------------
-
-  // gnu.crypto.keys.IKeyPairCodec interface implementation ------------------
-
   public int getFormatID()
   {
     return RAW_FORMAT;
   }
 
   /**
-   * <p>Returns the encoded form of the designated SRP public key according to
-   * the <i>Raw</i> format supported by this library.</p>
-   *
-   * <p>The <i>Raw</i> format for an SRP public key, in this implementation, is
-   * a byte sequence consisting of the following:</p>
+   * Returns the encoded form of the designated SRP public key according to the
+   * <i>Raw</i> format supported by this library.
+   * <p>
+   * The <i>Raw</i> format for an SRP public key, in this implementation, is a
+   * byte sequence consisting of the following:
    * <ol>
-   *    <li>4-byte magic consisting of the value of the literal
-   *    {@link Registry#MAGIC_RAW_SRP_PUBLIC_KEY},<li>
-   *    <li>1-byte version consisting of the constant: 0x01,</li>
-   *    <li>4-byte count of following bytes representing the SRP parameter
-   *    <code>N</code> in internet order,</li>
-   *    <li>n-bytes representation of a {@link BigInteger} obtained by invoking
-   *    the <code>toByteArray()</code> method on the SRP parameter
-   *    <code>N</code>,</li>
-   *    <li>4-byte count of following bytes representing the SRP parameter
-   *    <code>g</code>,</li>
-   *    <li>n-bytes representation of a {@link BigInteger} obtained by invoking
-   *    the <code>toByteArray()</code> method on the SRP parameter
-   *    <code>g</code>,</li>
-   *    <li>4-byte count of following bytes representing the SRP parameter
-   *    <code>y</code>,</li>
-   *    <li>n-bytes representation of a {@link BigInteger} obtained by invoking
-   *    the <code>toByteArray()</code> method on the SRP parameter
-   *    <code>y</code>,</li>
+   * <li>4-byte magic consisting of the value of the literal
+   * {@link Registry#MAGIC_RAW_SRP_PUBLIC_KEY},</li>
+   * <li>1-byte version consisting of the constant: 0x01,</li>
+   * <li>4-byte count of following bytes representing the SRP parameter
+   * <code>N</code> in internet order,</li>
+   * <li>n-bytes representation of a {@link BigInteger} obtained by invoking
+   * the <code>toByteArray()</code> method on the SRP parameter <code>N</code>,
+   * </li>
+   * <li>4-byte count of following bytes representing the SRP parameter
+   * <code>g</code>,</li>
+   * <li>n-bytes representation of a {@link BigInteger} obtained by invoking
+   * the <code>toByteArray()</code> method on the SRP parameter <code>g</code>,
+   * </li>
+   * <li>4-byte count of following bytes representing the SRP parameter
+   * <code>y</code>,</li>
+   * <li>n-bytes representation of a {@link BigInteger} obtained by invoking
+   * the <code>toByteArray()</code> method on the SRP parameter <code>y</code>,
+   * </li>
    * </ol>
-   *
+   * 
    * @param key the key to encode.
    * @return the <i>Raw</i> format encoding of the designated key.
    * @throws IllegalArgumentException if the designated key is not an SRP one.
    */
   public byte[] encodePublicKey(PublicKey key)
   {
-    if (!(key instanceof SRPPublicKey))
-      {
-        throw new IllegalArgumentException("key");
-      }
-
+    if (! (key instanceof SRPPublicKey))
+      throw new IllegalArgumentException("key");
     SRPPublicKey srpKey = (SRPPublicKey) key;
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
     // magic
     baos.write(Registry.MAGIC_RAW_SRP_PUBLIC_KEY[0]);
     baos.write(Registry.MAGIC_RAW_SRP_PUBLIC_KEY[1]);
     baos.write(Registry.MAGIC_RAW_SRP_PUBLIC_KEY[2]);
     baos.write(Registry.MAGIC_RAW_SRP_PUBLIC_KEY[3]);
-
     // version
     baos.write(0x01);
-
     // N
     byte[] buffer = srpKey.getN().toByteArray();
     int length = buffer.length;
-    baos.write(length >>> 24);
+    baos.write( length >>> 24);
     baos.write((length >>> 16) & 0xFF);
-    baos.write((length >>> 8) & 0xFF);
-    baos.write(length & 0xFF);
+    baos.write((length >>>  8) & 0xFF);
+    baos.write( length         & 0xFF);
     baos.write(buffer, 0, length);
-
     // g
     buffer = srpKey.getG().toByteArray();
     length = buffer.length;
-    baos.write(length >>> 24);
+    baos.write( length >>> 24);
     baos.write((length >>> 16) & 0xFF);
-    baos.write((length >>> 8) & 0xFF);
-    baos.write(length & 0xFF);
+    baos.write((length >>>  8) & 0xFF);
+    baos.write( length         & 0xFF);
     baos.write(buffer, 0, length);
-
     // y
     buffer = srpKey.getY().toByteArray();
     length = buffer.length;
-    baos.write(length >>> 24);
+    baos.write( length >>> 24);
     baos.write((length >>> 16) & 0xFF);
-    baos.write((length >>> 8) & 0xFF);
-    baos.write(length & 0xFF);
+    baos.write((length >>>  8) & 0xFF);
+    baos.write( length         & 0xFF);
     baos.write(buffer, 0, length);
-
     return baos.toByteArray();
   }
 
@@ -167,150 +144,133 @@ public class SRPKeyPairRawCodec implements IKeyPairCodec
         || k[1] != Registry.MAGIC_RAW_SRP_PUBLIC_KEY[1]
         || k[2] != Registry.MAGIC_RAW_SRP_PUBLIC_KEY[2]
         || k[3] != Registry.MAGIC_RAW_SRP_PUBLIC_KEY[3])
-      {
-        throw new IllegalArgumentException("magic");
-      }
-
+      throw new IllegalArgumentException("magic");
     // version
     if (k[4] != 0x01)
-      {
-        throw new IllegalArgumentException("version");
-      }
+      throw new IllegalArgumentException("version");
     int i = 5;
-
     int l;
     byte[] buffer;
-
     // N
-    l = k[i++] << 24 | (k[i++] & 0xFF) << 16 | (k[i++] & 0xFF) << 8
-        | (k[i++] & 0xFF);
+    l =  k[i++]         << 24
+      | (k[i++] & 0xFF) << 16
+      | (k[i++] & 0xFF) << 8
+      | (k[i++] & 0xFF);
     buffer = new byte[l];
     System.arraycopy(k, i, buffer, 0, l);
     i += l;
     BigInteger N = new BigInteger(1, buffer);
-
     // g
-    l = k[i++] << 24 | (k[i++] & 0xFF) << 16 | (k[i++] & 0xFF) << 8
-        | (k[i++] & 0xFF);
+    l =  k[i++]         << 24
+      | (k[i++] & 0xFF) << 16
+      | (k[i++] & 0xFF) << 8
+      | (k[i++] & 0xFF);
     buffer = new byte[l];
     System.arraycopy(k, i, buffer, 0, l);
     i += l;
     BigInteger g = new BigInteger(1, buffer);
-
     // y
-    l = k[i++] << 24 | (k[i++] & 0xFF) << 16 | (k[i++] & 0xFF) << 8
-        | (k[i++] & 0xFF);
+    l =  k[i++]         << 24
+      | (k[i++] & 0xFF) << 16
+      | (k[i++] & 0xFF) << 8
+      | (k[i++] & 0xFF);
     buffer = new byte[l];
     System.arraycopy(k, i, buffer, 0, l);
     i += l;
     BigInteger y = new BigInteger(1, buffer);
-
     return new SRPPublicKey(N, g, y);
   }
 
   /**
-   * <p>Returns the encoded form of the designated SRP private key according to
-   * the <i>Raw</i> format supported by this library.</p>
-   *
-   * <p>The <i>Raw</i> format for an SRP private key, in this implementation,
-   * is a byte sequence consisting of the following:</p>
+   * Returns the encoded form of the designated SRP private key according to the
+   * <i>Raw</i> format supported by this library.
+   * <p>
+   * The <i>Raw</i> format for an SRP private key, in this implementation, is a
+   * byte sequence consisting of the following:
    * <ol>
-   *    <li>4-byte magic consisting of the value of the literal
-   *    {@link Registry#MAGIC_RAW_SRP_PRIVATE_KEY},<li>
-   *    <li>1-byte version consisting of the constant: 0x01,</li>
-   *    <li>4-byte count of following bytes representing the SRP parameter
-   *    <code>N</code> in internet order,</li>
-   *    <li>n-bytes representation of a {@link BigInteger} obtained by invoking
-   *    the <code>toByteArray()</code> method on the SRP parameter
-   *    <code>N</code>,</li>
-   *    <li>4-byte count of following bytes representing the SRP parameter
-   *    <code>g</code>,</li>
-   *    <li>n-bytes representation of a {@link BigInteger} obtained by invoking
-   *    the <code>toByteArray()</code> method on the SRP parameter
-   *    <code>g</code>,</li>
-   *    <li>4-byte count of following bytes representing the SRP parameter
-   *    <code>x</code>,</li>
-   *    <li>n-bytes representation of a {@link BigInteger} obtained by invoking
-   *    the <code>toByteArray()</code> method on the SRP parameter
-   *    <code>x</code>,</li>
-   *    <li>one byte which indicates whether the SRP parameter <code>v</code>
-   *    is included in this encoding (value <code>0x01</code>) or not
-   *    (value <code>0x00</code>).</li>
-   *    <li>4-byte count of following bytes representing the SRP parameter
-   *    <code>v</code>,</li>
-   *    <li>n-bytes representation of a {@link BigInteger} obtained by invoking
-   *    the <code>toByteArray()</code> method on the SRP parameter
-   *    <code>v</code>,</li>
+   * <li>4-byte magic consisting of the value of the literal
+   * {@link Registry#MAGIC_RAW_SRP_PRIVATE_KEY},</li>
+   * <li>1-byte version consisting of the constant: 0x01,</li>
+   * <li>4-byte count of following bytes representing the SRP parameter
+   * <code>N</code> in internet order,</li>
+   * <li>n-bytes representation of a {@link BigInteger} obtained by invoking
+   * the <code>toByteArray()</code> method on the SRP parameter <code>N</code>,
+   * </li>
+   * <li>4-byte count of following bytes representing the SRP parameter
+   * <code>g</code>,</li>
+   * <li>n-bytes representation of a {@link BigInteger} obtained by invoking
+   * the <code>toByteArray()</code> method on the SRP parameter <code>g</code>,
+   * </li>
+   * <li>4-byte count of following bytes representing the SRP parameter
+   * <code>x</code>,</li>
+   * <li>n-bytes representation of a {@link BigInteger} obtained by invoking
+   * the <code>toByteArray()</code> method on the SRP parameter <code>x</code>,
+   * </li>
+   * <li>one byte which indicates whether the SRP parameter <code>v</code> is
+   * included in this encoding (value <code>0x01</code>) or not (value
+   * <code>0x00</code>).</li>
+   * <li>4-byte count of following bytes representing the SRP parameter
+   * <code>v</code>,</li>
+   * <li>n-bytes representation of a {@link BigInteger} obtained by invoking
+   * the <code>toByteArray()</code> method on the SRP parameter <code>v</code>,
+   * </li>
    * </ol>
-   *
+   * 
    * @param key the key to encode.
    * @return the <i>Raw</i> format encoding of the designated key.
    * @throws IllegalArgumentException if the designated key is not an SRP one.
    */
   public byte[] encodePrivateKey(PrivateKey key)
   {
-    if (!(key instanceof SRPPrivateKey))
-      {
-        throw new IllegalArgumentException("key");
-      }
-
+    if (! (key instanceof SRPPrivateKey))
+      throw new IllegalArgumentException("key");
     SRPPrivateKey srpKey = (SRPPrivateKey) key;
     ByteArrayOutputStream baos = new ByteArrayOutputStream();
-
     // magic
     baos.write(Registry.MAGIC_RAW_SRP_PRIVATE_KEY[0]);
     baos.write(Registry.MAGIC_RAW_SRP_PRIVATE_KEY[1]);
     baos.write(Registry.MAGIC_RAW_SRP_PRIVATE_KEY[2]);
     baos.write(Registry.MAGIC_RAW_SRP_PRIVATE_KEY[3]);
-
     // version
     baos.write(0x01);
-
     // N
     byte[] buffer = srpKey.getN().toByteArray();
     int length = buffer.length;
-    baos.write(length >>> 24);
+    baos.write( length >>> 24);
     baos.write((length >>> 16) & 0xFF);
-    baos.write((length >>> 8) & 0xFF);
-    baos.write(length & 0xFF);
+    baos.write((length >>>  8) & 0xFF);
+    baos.write( length         & 0xFF);
     baos.write(buffer, 0, length);
-
     // g
     buffer = srpKey.getG().toByteArray();
     length = buffer.length;
-    baos.write(length >>> 24);
+    baos.write( length >>> 24);
     baos.write((length >>> 16) & 0xFF);
-    baos.write((length >>> 8) & 0xFF);
-    baos.write(length & 0xFF);
+    baos.write((length >>>  8) & 0xFF);
+    baos.write( length         & 0xFF);
     baos.write(buffer, 0, length);
-
     // x
     buffer = srpKey.getX().toByteArray();
     length = buffer.length;
-    baos.write(length >>> 24);
+    baos.write( length >>> 24);
     baos.write((length >>> 16) & 0xFF);
-    baos.write((length >>> 8) & 0xFF);
-    baos.write(length & 0xFF);
+    baos.write((length >>>  8) & 0xFF);
+    baos.write( length         & 0xFF);
     baos.write(buffer, 0, length);
-
     // v
     if (srpKey.getV() != null)
       {
         baos.write(0x01);
-
         buffer = srpKey.getV().toByteArray();
         length = buffer.length;
-        baos.write(length >>> 24);
+        baos.write( length >>> 24);
         baos.write((length >>> 16) & 0xFF);
-        baos.write((length >>> 8) & 0xFF);
-        baos.write(length & 0xFF);
+        baos.write((length >>>  8) & 0xFF);
+        baos.write( length         & 0xFF);
         baos.write(buffer, 0, length);
       }
     else
-      {
-        baos.write(0x00);
-      }
-
+      baos.write(0x00);
     return baos.toByteArray();
   }
 
@@ -321,60 +281,54 @@ public class SRPKeyPairRawCodec implements IKeyPairCodec
         || k[1] != Registry.MAGIC_RAW_SRP_PRIVATE_KEY[1]
         || k[2] != Registry.MAGIC_RAW_SRP_PRIVATE_KEY[2]
         || k[3] != Registry.MAGIC_RAW_SRP_PRIVATE_KEY[3])
-      {
-        throw new IllegalArgumentException("magic");
-      }
-
+      throw new IllegalArgumentException("magic");
     // version
     if (k[4] != 0x01)
-      {
-        throw new IllegalArgumentException("version");
-      }
+      throw new IllegalArgumentException("version");
     int i = 5;
-
     int l;
     byte[] buffer;
-
     // N
-    l = k[i++] << 24 | (k[i++] & 0xFF) << 16 | (k[i++] & 0xFF) << 8
-        | (k[i++] & 0xFF);
+    l =  k[i++]         << 24
+      | (k[i++] & 0xFF) << 16
+      | (k[i++] & 0xFF) << 8
+      | (k[i++] & 0xFF);
     buffer = new byte[l];
     System.arraycopy(k, i, buffer, 0, l);
     i += l;
     BigInteger N = new BigInteger(1, buffer);
-
     // g
-    l = k[i++] << 24 | (k[i++] & 0xFF) << 16 | (k[i++] & 0xFF) << 8
-        | (k[i++] & 0xFF);
+    l =  k[i++]         << 24
+      | (k[i++] & 0xFF) << 16
+      | (k[i++] & 0xFF) << 8
+      | (k[i++] & 0xFF);
     buffer = new byte[l];
     System.arraycopy(k, i, buffer, 0, l);
     i += l;
     BigInteger g = new BigInteger(1, buffer);
-
     // x
-    l = k[i++] << 24 | (k[i++] & 0xFF) << 16 | (k[i++] & 0xFF) << 8
-        | (k[i++] & 0xFF);
+    l =  k[i++]         << 24
+      | (k[i++] & 0xFF) << 16
+      | (k[i++] & 0xFF) << 8
+      | (k[i++] & 0xFF);
     buffer = new byte[l];
     System.arraycopy(k, i, buffer, 0, l);
     i += l;
     BigInteger x = new BigInteger(1, buffer);
-
     // v
     l = k[i++];
     if (l == 0x01)
       {
-        l = k[i++] << 24 | (k[i++] & 0xFF) << 16 | (k[i++] & 0xFF) << 8
-            | (k[i++] & 0xFF);
+        l =  k[i++]         << 24
+          | (k[i++] & 0xFF) << 16
+          | (k[i++] & 0xFF) << 8
+          | (k[i++] & 0xFF);
         buffer = new byte[l];
         System.arraycopy(k, i, buffer, 0, l);
         i += l;
         BigInteger v = new BigInteger(1, buffer);
-
         return new SRPPrivateKey(N, g, x, v);
       }
-    else
-      {
-        return new SRPPrivateKey(N, g, x);
-      }
+    return new SRPPrivateKey(N, g, x);
   }
 }