Skip to content
Browse files

merged upstream bitcoinj 0.2

  • Loading branch information...
2 parents 6a1f7f7 + 1f752ee commit f9aaf27d58bbcc0c7902d57346bfeb258dc0f3e8 Brian Armstrong committed Jun 28, 2011
Showing with 19,755 additions and 50 deletions.
  1. +14 −5 README
  2. +8 −6 TODO
  3. +286 −15 pom.xml
  4. +39 −19 src/com/google/bitcoin/core/Block.java
  5. +1 −1 src/com/google/bitcoin/core/BlockChain.java
  6. +4 −3 src/com/google/bitcoin/core/PeerAddress.java
  7. +2 −0 src/com/google/bitcoin/core/Wallet.java
  8. +5 −1 src/com/google/bitcoin/examples/PingService.java
  9. +144 −0 target/site/apidocs/allclasses-frame.html
  10. +144 −0 target/site/apidocs/allclasses-noframe.html
  11. +311 −0 target/site/apidocs/com/google/bitcoin/bouncycastle/LICENSE.html
  12. +145 −0 target/site/apidocs/com/google/bitcoin/bouncycastle/class-use/LICENSE.html
  13. +33 −0 target/site/apidocs/com/google/bitcoin/bouncycastle/package-frame.html
  14. +160 −0 target/site/apidocs/com/google/bitcoin/bouncycastle/package-summary.html
  15. +154 −0 target/site/apidocs/com/google/bitcoin/bouncycastle/package-tree.html
  16. +145 −0 target/site/apidocs/com/google/bitcoin/bouncycastle/package-use.html
  17. +331 −0 target/site/apidocs/com/google/bitcoin/core/Address.html
  18. +255 −0 target/site/apidocs/com/google/bitcoin/core/AddressFormatException.html
  19. +256 −0 target/site/apidocs/com/google/bitcoin/core/AddressMessage.html
  20. +337 −0 target/site/apidocs/com/google/bitcoin/core/Base58.html
  21. +323 −0 target/site/apidocs/com/google/bitcoin/core/BitcoinSerializer.html
  22. +660 −0 target/site/apidocs/com/google/bitcoin/core/Block.html
  23. +440 −0 target/site/apidocs/com/google/bitcoin/core/BlockChain.html
  24. +301 −0 target/site/apidocs/com/google/bitcoin/core/BlockStore.html
  25. +259 −0 target/site/apidocs/com/google/bitcoin/core/BlockStoreException.html
  26. +376 −0 target/site/apidocs/com/google/bitcoin/core/BoundedOverheadBlockStore.html
  27. +364 −0 target/site/apidocs/com/google/bitcoin/core/DiskBlockStore.html
  28. +323 −0 target/site/apidocs/com/google/bitcoin/core/DnsDiscovery.html
  29. +317 −0 target/site/apidocs/com/google/bitcoin/core/DumpedPrivateKey.html
  30. +490 −0 target/site/apidocs/com/google/bitcoin/core/ECKey.html
  31. +328 −0 target/site/apidocs/com/google/bitcoin/core/GetBlocksMessage.html
  32. +289 −0 target/site/apidocs/com/google/bitcoin/core/GetDataMessage.html
  33. +342 −0 target/site/apidocs/com/google/bitcoin/core/InventoryItem.Type.html
  34. +329 −0 target/site/apidocs/com/google/bitcoin/core/InventoryItem.html
  35. +289 −0 target/site/apidocs/com/google/bitcoin/core/InventoryMessage.html
  36. +344 −0 target/site/apidocs/com/google/bitcoin/core/IrcDiscovery.html
  37. +386 −0 target/site/apidocs/com/google/bitcoin/core/ListMessage.html
  38. +353 −0 target/site/apidocs/com/google/bitcoin/core/MemoryBlockStore.html
  39. +402 −0 target/site/apidocs/com/google/bitcoin/core/Message.html
  40. +404 −0 target/site/apidocs/com/google/bitcoin/core/NetworkConnection.html
  41. +502 −0 target/site/apidocs/com/google/bitcoin/core/NetworkParameters.html
  42. +342 −0 target/site/apidocs/com/google/bitcoin/core/Peer.html
  43. +376 −0 target/site/apidocs/com/google/bitcoin/core/PeerAddress.html
  44. +220 −0 target/site/apidocs/com/google/bitcoin/core/PeerDiscovery.html
  45. +285 −0 target/site/apidocs/com/google/bitcoin/core/PeerDiscoveryException.html
  46. +258 −0 target/site/apidocs/com/google/bitcoin/core/Ping.html
  47. +271 −0 target/site/apidocs/com/google/bitcoin/core/ProtocolException.html
  48. +623 −0 target/site/apidocs/com/google/bitcoin/core/Script.html
  49. +257 −0 target/site/apidocs/com/google/bitcoin/core/ScriptException.html
  50. +299 −0 target/site/apidocs/com/google/bitcoin/core/SeedPeers.html
  51. +352 −0 target/site/apidocs/com/google/bitcoin/core/Sha256Hash.html
  52. +473 −0 target/site/apidocs/com/google/bitcoin/core/StoredBlock.html
  53. +351 −0 target/site/apidocs/com/google/bitcoin/core/Transaction.SigHash.html
  54. +693 −0 target/site/apidocs/com/google/bitcoin/core/Transaction.html
  55. +444 −0 target/site/apidocs/com/google/bitcoin/core/TransactionInput.html
  56. +310 −0 target/site/apidocs/com/google/bitcoin/core/TransactionOutPoint.html
  57. +433 −0 target/site/apidocs/com/google/bitcoin/core/TransactionOutput.html
  58. +323 −0 target/site/apidocs/com/google/bitcoin/core/UnknownMessage.html
  59. +696 −0 target/site/apidocs/com/google/bitcoin/core/Utils.html
  60. +343 −0 target/site/apidocs/com/google/bitcoin/core/VarInt.html
  61. +241 −0 target/site/apidocs/com/google/bitcoin/core/VerificationException.html
  62. +278 −0 target/site/apidocs/com/google/bitcoin/core/VersionAck.html
  63. +536 −0 target/site/apidocs/com/google/bitcoin/core/VersionMessage.html
  64. +414 −0 target/site/apidocs/com/google/bitcoin/core/VersionedChecksummedBytes.html
  65. +342 −0 target/site/apidocs/com/google/bitcoin/core/Wallet.BalanceType.html
Sorry, we could not display the entire diff because it was too big.
View
19 README
@@ -1,12 +1,21 @@
-To get started, ensure you have the latest JDK installed and then just run "ant".
+To get started, ensure you have the latest JDK installed, and download Maven from:
-- A JAR will be placed in dist/
-- JavaDocs will be placed in docs/
-- Unit tests will be run
+ http://maven.apache.org/
+
+Then run "mvn clean package" to compile the software. You can also run "mvn site:site" to generate a website with
+useful information like JavaDocs. The outputs are under the target/ directory.
Now ensure you're running a BitCoin node locally and run the example app:
cd out
java -classpath .:../lib/* com.google.bitcoin.examples.PingService
-It will print a BitCoin address. If you send coins to it, you should get them back a few minutes later when a block is solved.
+It will download the block chain and eventually print a BitCoin address. If you send coins to it,
+you should get them back a few minutes later when a block is solved.
+
+Note that if you connect to a node that is itself downloading the block chain, you will see very slow progress (1
+block per second or less). Find a node that isn't heavily loaded to connect to.
+
+If you get a SocketDisconnectedException, the node you've connected to has its max send buffer set to low
+(unfortunately the default is too low). Connect to a node that has a bigger send buffer,
+settable by passing -maxsendbuffer=25600 to the Bitcoin C++ software.
View
14 TODO
@@ -1,18 +1,20 @@
Here is a brief list of things that still need to be done.
More unit tests:
- - Implement more unit tests for block chain functionality
- Create a MockNetworkConnection and use it to test the Peer.
+API:
+ - Reorganize the package layout to be more modular.
+ - Support multiple active wallets.
+ - Allow sorting of transactions by time.
+
Protocol:
- - Properly support multiple chains
- Start up faster
- - Store a block locator in the wallet
- - Parse the stored headers at startup, then download the rest
- - Provide a seed node list in the NetworkParameters.
+ - Store a block locator in the persisted chain
+ - Use the getheaders command to speed up the initial chain download
- Implement tx fees.
- - Support import of private keys and then extracting its transactions from the block chain.
- Longer term potentially add a getmerklebranch protocol command so we can check 0-confirmation transactions.
+ - Support PeerGroups for holding open/using multiple connections at once.
Examples/documentation:
- Implement a simple Swing GUI payment app.
View
301 pom.xml
@@ -1,44 +1,194 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.google</groupId>
<artifactId>bitcoinj</artifactId>
- <version>0.0.1-SNAPSHOT</version>
-
+ <version>0.2</version>
+ <name>BitCoinJ</name>
+ <description>A Java implementation of a Bitcoin client-only node</description>
+ <url>http://code.google.com/p/bitcoinj</url>
+ <!-- This POM has been tested with the following versions of Maven:
+ 2.2.0, 2.2.1, 3.0.2
+
+ Use "mvn clean package" to build quickly without all the reports
+ Use "mvn clean verify" before submitting a patch
+
+ Use "mvn site:site" to generate a complete website under target/site
+ Use "mvn site:run" to run a local webserver localhost:8080/index.html
+
+ -->
+ <ciManagement>
+ <url>http://ci.bitcoinj.org/</url>
+ </ciManagement>
+ <licenses>
+ <license>
+ <name>Apache 2</name>
+ <url>http://www.apache.org/licenses/LICENSE-2.0</url>
+ <distribution>repo</distribution>
+ <comments>A business-friendly OSS license</comments>
+ </license>
+ </licenses>
+ <!-- Committers -->
+ <developers>
+ <!-- Information already public -->
+ <developer>
+ <name>Mike Hearn</name>
+ <email>hearn@google.com</email>
+ </developer>
+ <developer>
+ <name>Miron Cuperman</name>
+ <email>miron@google.com</email>
+ </developer>
+ <developer>
+ <name>Xiaofeng Guo</name>
+ <email>xiaofengguo@google.com</email>
+ </developer>
+ </developers>
+ <!-- Patchers and contributors -->
+ <contributors>
+ <!-- Information already public -->
+ <contributor>
+ <name>Thilo Planz</name>
+ <email>thilo@cpan.org</email>
+ </contributor>
+ <contributor>
+ <name>Micheal Swiggs</name>
+ <email>bobby.simpson87@gmail.com</email>
+ </contributor>
+ <contributor>
+ <name>Gary Rowe</name>
+ <email>g.rowe@froot.co.uk</email>
+ </contributor>
+ <contributor>
+ <name>Noa Resare</name>
+ <email>noa@resare.com</email>
+ </contributor>
+ <contributor>
+ <name>John Sample</name>
+ <email>jwsample@gmail.com</email>
+ </contributor>
+ </contributors>
+ <issueManagement>
+ <system>Google Code</system>
+ <url>http://code.google.com/p/bitcoinj/issues/list</url>
+ </issueManagement>
+ <mailingLists>
+ <mailingList>
+ <name>BitcoinJ Google Group</name>
+ <post>https://groups.google.com/forum/#!forum/bitcoinj</post>
+ </mailingList>
+ </mailingLists>
+ <scm>
+ <!-- Public read-only source -->
+ <url>http://bitcoinj.googlecode.com/svn/trunk/</url>
+ </scm>
+ <profiles>
+ <profile>
+ <id>maven-3</id>
+ <activation>
+ <file>
+ <!-- This relies on basedir is only recognized by Maven 3.x (see MNG-2363) -->
+ <exists>${basedir}</exists>
+ </file>
+ </activation>
+ <build>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>3.0-beta-3</version>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>attach-descriptor</id>
+ <goals>
+ <goal>attach-descriptor</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
<build>
<sourceDirectory>src</sourceDirectory>
<testSourceDirectory>tests</testSourceDirectory>
-
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
- <version>2.3.2</version>
+ <version>${maven-site-plugin.version}.2</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
+ <!-- Unit testing -->
<plugin>
- <groupId>org.codehaus.mojo</groupId>
- <artifactId>findbugs-maven-plugin</artifactId>
- <version>1.2</version>
- <configuration>
- <findbugsXmlOutput>true</findbugsXmlOutput>
- <findbugsXmlWithMessages>true</findbugsXmlWithMessages>
- <xmlOutput>true</xmlOutput>
- </configuration>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${maven-surefire-plugin.version}</version>
+ </plugin>
+ <!-- Unit test reporting -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <version>${maven-surefire-report-plugin.version}</version>
+ </plugin>
+ <!-- Generates a source code JAR during package -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-source-plugin</artifactId>
+ <version>${maven-source-plugin.version}</version>
+ <executions>
+ <execution>
+ <id>attach-sources</id>
+ <goals>
+ <goal>jar</goal>
+ </goals>
+ </execution>
+ </executions>
</plugin>
+ <!-- Execute FindBugs during verify phase
+ Will fail the build if it finds a bug
+ Enable when ready -->
+ <!--<plugin>-->
+ <!--<groupId>org.codehaus.mojo</groupId>-->
+ <!--<artifactId>findbugs-maven-plugin</artifactId>-->
+ <!--<version>${findbugs-maven-plugin.version}</version>-->
+ <!--<configuration>-->
+ <!--<xmlOutput>true</xmlOutput>-->
+ <!--<xmlOutputDirectory>target/site</xmlOutputDirectory>-->
+ <!--<findbugsXmlOutput>true</findbugsXmlOutput>-->
+ <!--<findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>-->
+ <!--<effort>Max</effort>-->
+ <!--<threshold>Low</threshold>-->
+ <!--</configuration>-->
+ <!--<executions>-->
+ <!--<execution>-->
+ <!--<phase>verify</phase>-->
+ <!--<goals>-->
+ <!--<goal>check</goal>-->
+ <!--</goals>-->
+ <!--</execution>-->
+ <!--</executions>-->
+ <!--</plugin>-->
</plugins>
-
</build>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.2</version>
<type>jar</type>
- <scope>compile</scope>
+ <scope>test</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
@@ -55,4 +205,125 @@
<scope>compile</scope>
</dependency>
</dependencies>
+ <!-- The reporting section is deprecated in Maven3,
+ but can be read by site plugin (see MNG-4162) -->
+ <reporting>
+ <outputDirectory>${basedir}/target/site</outputDirectory>
+ <plugins>
+ <!-- Generates Javadocs -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <version>${maven-javadoc-plugin.version}</version>
+ <configuration>
+ <excludePackageNames>com.google.bitcoin.bouncycastle.*</excludePackageNames>
+ </configuration>
+ </plugin>
+ <!-- Generate a FindBugs report -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>findbugs-maven-plugin</artifactId>
+ <version>${findbugs-maven-plugin.version}</version>
+ <configuration>
+ <!-- Findbugs takes about 2mins to complete -->
+ <skip>true</skip>
+ <xmlOutput>true</xmlOutput>
+ <xmlOutputDirectory>target/site</xmlOutputDirectory>
+ <findbugsXmlOutput>true</findbugsXmlOutput>
+ <findbugsXmlOutputDirectory>target/site</findbugsXmlOutputDirectory>
+ <effort>Max</effort>
+ <threshold>Low</threshold>
+ </configuration>
+ </plugin>
+ <!-- Generate a code coverage report -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <version>${cobertura-maven-plugin.version}</version>
+ <configuration>
+ <instrumentation>
+ <ignores>
+ <ignore>org.slf4j.*</ignore>
+ </ignores>
+ <excludes>
+ <exclude>com.google.bitcoin.bouncycastle.*</exclude>
+ </excludes>
+ </instrumentation>
+ <formats>
+ <format>html</format>
+ <format>xml</format>
+ </formats>
+ </configuration>
+ </plugin>
+ <!-- Generate an HTML report for unit tests -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ <version>${maven-surefire-report-plugin.version}</version>
+ </plugin>
+ <!-- Generate a mini-site for the project -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-site-plugin</artifactId>
+ <version>${maven-site-plugin.version}</version>
+ </plugin>
+ <!-- Generate cross-referenced HTML source code listing -->
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <version>${maven-jxr-plugin.version}</version>
+ </plugin>
+ <!-- Execute Taglist to add TODOs, REFACTORs
+ and so on to the project site during verify
+ -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>taglist-maven-plugin</artifactId>
+ <version>${taglist-maven-plugin.version}</version>
+ <configuration>
+ <tagListOptions>
+ <tagClasses>
+ <tagClass>
+ <displayName>Pre-release Project Development Work (Peer Review)</displayName>
+ <tags>
+ <tag>
+ <matchString>TODO</matchString>
+ <matchType>ignoreCase</matchType>
+ </tag>
+ <tag>
+ <matchString>FIXME</matchString>
+ <matchType>ignoreCase</matchType>
+ </tag>
+ </tags>
+ </tagClass>
+ <tagClass>
+ <displayName>Ongoing Refactoring and Maintenance Work (Technical Debt)</displayName>
+ <tags>
+ <tag>
+ <matchString>REFACTOR</matchString>
+ <matchType>ignoreCase</matchType>
+ </tag>
+ </tags>
+ </tagClass>
+ </tagClasses>
+ </tagListOptions>
+ </configuration>
+ </plugin>
+ </plugins>
+ </reporting>
+ <properties>
+ <!-- Source encoding -->
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <!-- Plugin versions -->
+ <!-- Require lower version for Maven3 compatibility -->
+ <maven-surefire-report-plugin.version>2.4.3</maven-surefire-report-plugin.version>
+ <maven-jxr-plugin.version>2.1</maven-jxr-plugin.version>
+ <maven-site-plugin.version>2.3</maven-site-plugin.version>
+ <maven-surefire-plugin.version>2.8.1</maven-surefire-plugin.version>
+ <maven-source-plugin.version>2.0.4</maven-source-plugin.version>
+ <maven-javadoc-plugin.version>2.6.1</maven-javadoc-plugin.version>
+ <findbugs-maven-plugin.version>2.3.1</findbugs-maven-plugin.version>
+ <taglist-maven-plugin.version>2.4</taglist-maven-plugin.version>
+ <cobertura-maven-plugin.version>2.3</cobertura-maven-plugin.version>
+ </properties>
</project>
View
58 src/com/google/bitcoin/core/Block.java
@@ -281,36 +281,56 @@ private void checkMerkleHash() throws VerificationException {
}
private List<byte[]> buildMerkleTree() {
- // The merkle hash is based on a tree of hashes calculated from the transactions:
+ // The Merkle root is based on a tree of hashes calculated from the transactions:
//
- // merkleHash
- // /\
- // / \
+ // root
+ // / \
+ // / \
// A B
// / \ / \
- // tx1 tx2 tx3 tx4
+ // t1 t2 t3 t4
//
- // Basically transactions are hashed, then the hashes of the transactions are hashed
- // again and so on upwards into the tree. The point of this scheme is to allow for
- // disk space savings later on.
+ // The tree is represented as a list: t1,t2,t3,t4,A,B,root where each entry is a hash.
//
- // This function is a direct translation of CBlock::BuildMerkleTree().
+ // The hashing algorithm is double SHA-256. The leaves are a hash of the serialized contents of the
+ // transaction. The interior nodes are hashes of the concenation of the two child hashes.
+ //
+ // This structure allows the creation of proof that a transaction was included into a block without having to
+ // provide the full block contents. Instead, you can provide only a Merkle branch. For example to prove tx2 was
+ // in a block you can just provide tx2, the hash(tx1) and B. Now the other party has everything they need to
+ // derive the root, which can be checked against the block header. These proofs aren't used right now but
+ // will be helpful later when we want to download partial block contents.
+ //
+ // Note that if the number of transactions is not a power of two the last tx is repeated to make it so (see
+ // tx3 above). A tree with 5 transactions would look like this:
+ //
+ // root
+ // / \
+ // / \
+ // 1 6
+ // / \ / \
+ // 2 3 4 5
+ // / \ / \ / \ / \
+ // t1 t2 t3 t4 t5 t5 t5 t5
ArrayList<byte[]> tree = new ArrayList<byte[]>();
// Start by adding all the hashes of the transactions as leaves of the tree.
for (Transaction t : transactions) {
tree.add(t.getHash().hash);
}
- int j = 0;
- // Now step through each level ...
- for (int size = transactions.size(); size > 1; size = (size + 1) / 2) {
- // and for each leaf on that level ..
- for (int i = 0; i < size; i += 2) {
- int i2 = Math.min(i + 1, size - 1);
- byte[] a = Utils.reverseBytes(tree.get(j + i));
- byte[] b = Utils.reverseBytes(tree.get(j + i2));
- tree.add(Utils.reverseBytes(doubleDigestTwoBuffers(a, 0, 32, b, 0, 32)));
+ int levelOffset = 0; // Offset in the list where the currently processed level starts.
+ // Step through each level, stopping when we reach the root (levelSize == 1).
+ for (int levelSize = transactions.size(); levelSize > 1; levelSize = (levelSize + 1) / 2) {
+ // For each pair of nodes on that level:
+ for (int left = 0; left < levelSize; left += 2) {
+ // The right hand node can be the same as the left hand, in the case where we don't have enough
+ // transactions to be a power of two.
+ int right = Math.min(left + 1, levelSize - 1);
+ byte[] leftBytes = Utils.reverseBytes(tree.get(levelOffset + left));
+ byte[] rightBytes = Utils.reverseBytes(tree.get(levelOffset + right));
+ tree.add(Utils.reverseBytes(doubleDigestTwoBuffers(leftBytes, 0, 32, rightBytes, 0, 32)));
}
- j += size;
+ // Move to the next level.
+ levelOffset += levelSize;
}
return tree;
}
View
2 src/com/google/bitcoin/core/BlockChain.java
@@ -166,7 +166,7 @@ private void connectBlock(StoredBlock newStoredBlock, StoredBlock storedPrev, Li
if (storedPrev.equals(chainHead)) {
// This block connects to the best known block, it is a normal continuation of the system.
setChainHead(newStoredBlock);
- log.info("Chain is now {} blocks high", chainHead.getHeight());
+ log.trace("Chain is now {} blocks high", chainHead.getHeight());
if (newTransactions != null)
sendTransactionsToWallet(newStoredBlock, NewBlockType.BEST_CHAIN, newTransactions);
} else {
View
7 src/com/google/bitcoin/core/PeerAddress.java
@@ -46,14 +46,15 @@ public PeerAddress(InetAddress addr, int port, int protocolVersion) {
this.addr = addr;
this.port = port;
this.protocolVersion = protocolVersion;
+ this.services = BigInteger.ZERO;
}
public void bitcoinSerializeToStream(OutputStream stream) throws IOException {
if (protocolVersion >= 31402) {
int secs = (int)(new Date().getTime() / 1000);
uint32ToByteStreamLE(secs, stream);
}
- uint64ToByteStreamLE(BigInteger.ZERO, stream); // nServices.
+ uint64ToByteStreamLE(services, stream); // nServices.
// Java does not provide any utility to map an IPv4 address into IPv6 space, so we have to do it by hand.
byte[] ipBytes = addr.getAddress();
if (ipBytes.length == 4) {
@@ -64,9 +65,9 @@ public void bitcoinSerializeToStream(OutputStream stream) throws IOException {
ipBytes = v6addr;
}
stream.write(ipBytes);
- // And write out the port.
+ // And write out the port. Unlike the rest of the protocol, address and port is in big endian byte order.
+ stream.write((byte) (0xFF & port >> 8));
stream.write((byte) (0xFF & port));
- stream.write((byte) (0xFF & (port >> 8)));
}
@Override
View
2 src/com/google/bitcoin/core/Wallet.java
@@ -858,6 +858,7 @@ private void reprocessTxAfterReorg(Map<Sha256Hash, Transaction> pool, Transactio
TransactionOutput doubleSpent = input.getConnectedOutput(pool);
Transaction replacement = doubleSpent.getSpentBy().parentTransaction;
dead.put(tx.getHash(), tx);
+ pending.remove(tx.getHash());
// Inform the event listeners of the newly dead tx.
for (WalletEventListener listener : eventListeners) {
synchronized (listener) {
@@ -876,6 +877,7 @@ private void reprocessTxAfterReorg(Map<Sha256Hash, Transaction> pool, Transactio
// All inputs are either valid for spending or don't come from us. Miners are trying to reinclude it.
log.info(" ->pending", tx.getHashAsString());
pending.put(tx.getHash(), tx);
+ dead.remove(tx.getHash());
}
}
View
6 src/com/google/bitcoin/examples/PingService.java
@@ -113,9 +113,13 @@ public void onCoinsReceived(Wallet w, Transaction tx, BigInteger prevBalance, Bi
if (max > 0) {
System.out.println("Downloading block chain. " + (max > 1000 ? "This may take a while." : ""));
long current = max;
+ int lastPercent = 0;
while (current > 0) {
double pct = 100.0 - (100.0 * (current / (double) max));
- System.out.println(String.format("Chain download %d%% done", (int) pct));
+ if ((int)pct != lastPercent) {
+ System.out.println(String.format("Chain download %d%% done", (int) pct));
+ lastPercent = (int) pct;
+ }
progress.await(1, TimeUnit.SECONDS);
current = progress.getCount();
}
View
144 target/site/apidocs/allclasses-frame.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:11 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+All Classes (BitCoinJ 0.2 API)
+</TITLE>
+
+<META NAME="date" CONTENT="2011-06-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/google/bitcoin/core/Address.html" title="class in com.google.bitcoin.core" target="classFrame">Address</A>
+<BR>
+<A HREF="com/google/bitcoin/core/AddressFormatException.html" title="class in com.google.bitcoin.core" target="classFrame">AddressFormatException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/AddressMessage.html" title="class in com.google.bitcoin.core" target="classFrame">AddressMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Base58.html" title="class in com.google.bitcoin.core" target="classFrame">Base58</A>
+<BR>
+<A HREF="com/google/bitcoin/core/BitcoinSerializer.html" title="class in com.google.bitcoin.core" target="classFrame">BitcoinSerializer</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Block.html" title="class in com.google.bitcoin.core" target="classFrame">Block</A>
+<BR>
+<A HREF="com/google/bitcoin/core/BlockChain.html" title="class in com.google.bitcoin.core" target="classFrame">BlockChain</A>
+<BR>
+<A HREF="com/google/bitcoin/core/BlockStore.html" title="interface in com.google.bitcoin.core" target="classFrame"><I>BlockStore</I></A>
+<BR>
+<A HREF="com/google/bitcoin/core/BlockStoreException.html" title="class in com.google.bitcoin.core" target="classFrame">BlockStoreException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/BoundedOverheadBlockStore.html" title="class in com.google.bitcoin.core" target="classFrame">BoundedOverheadBlockStore</A>
+<BR>
+<A HREF="com/google/bitcoin/core/DiskBlockStore.html" title="class in com.google.bitcoin.core" target="classFrame">DiskBlockStore</A>
+<BR>
+<A HREF="com/google/bitcoin/core/DnsDiscovery.html" title="class in com.google.bitcoin.core" target="classFrame">DnsDiscovery</A>
+<BR>
+<A HREF="com/google/bitcoin/core/DumpedPrivateKey.html" title="class in com.google.bitcoin.core" target="classFrame">DumpedPrivateKey</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/DumpWallet.html" title="class in com.google.bitcoin.examples" target="classFrame">DumpWallet</A>
+<BR>
+<A HREF="com/google/bitcoin/core/ECKey.html" title="class in com.google.bitcoin.core" target="classFrame">ECKey</A>
+<BR>
+<A HREF="com/google/bitcoin/core/GetBlocksMessage.html" title="class in com.google.bitcoin.core" target="classFrame">GetBlocksMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/GetDataMessage.html" title="class in com.google.bitcoin.core" target="classFrame">GetDataMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/InventoryItem.html" title="class in com.google.bitcoin.core" target="classFrame">InventoryItem</A>
+<BR>
+<A HREF="com/google/bitcoin/core/InventoryItem.Type.html" title="enum in com.google.bitcoin.core" target="classFrame">InventoryItem.Type</A>
+<BR>
+<A HREF="com/google/bitcoin/core/InventoryMessage.html" title="class in com.google.bitcoin.core" target="classFrame">InventoryMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/IrcDiscovery.html" title="class in com.google.bitcoin.core" target="classFrame">IrcDiscovery</A>
+<BR>
+<A HREF="com/google/bitcoin/bouncycastle/LICENSE.html" title="class in com.google.bitcoin.bouncycastle" target="classFrame">LICENSE</A>
+<BR>
+<A HREF="com/google/bitcoin/core/ListMessage.html" title="class in com.google.bitcoin.core" target="classFrame">ListMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/MemoryBlockStore.html" title="class in com.google.bitcoin.core" target="classFrame">MemoryBlockStore</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Message.html" title="class in com.google.bitcoin.core" target="classFrame">Message</A>
+<BR>
+<A HREF="com/google/bitcoin/core/NetworkConnection.html" title="class in com.google.bitcoin.core" target="classFrame">NetworkConnection</A>
+<BR>
+<A HREF="com/google/bitcoin/core/NetworkParameters.html" title="class in com.google.bitcoin.core" target="classFrame">NetworkParameters</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Peer.html" title="class in com.google.bitcoin.core" target="classFrame">Peer</A>
+<BR>
+<A HREF="com/google/bitcoin/core/PeerAddress.html" title="class in com.google.bitcoin.core" target="classFrame">PeerAddress</A>
+<BR>
+<A HREF="com/google/bitcoin/core/PeerDiscovery.html" title="interface in com.google.bitcoin.core" target="classFrame"><I>PeerDiscovery</I></A>
+<BR>
+<A HREF="com/google/bitcoin/core/PeerDiscoveryException.html" title="class in com.google.bitcoin.core" target="classFrame">PeerDiscoveryException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Ping.html" title="class in com.google.bitcoin.core" target="classFrame">Ping</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/PingService.html" title="class in com.google.bitcoin.examples" target="classFrame">PingService</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/PrintPeers.html" title="class in com.google.bitcoin.examples" target="classFrame">PrintPeers</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/PrivateKeys.html" title="class in com.google.bitcoin.examples" target="classFrame">PrivateKeys</A>
+<BR>
+<A HREF="com/google/bitcoin/core/ProtocolException.html" title="class in com.google.bitcoin.core" target="classFrame">ProtocolException</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/RefreshWallet.html" title="class in com.google.bitcoin.examples" target="classFrame">RefreshWallet</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Script.html" title="class in com.google.bitcoin.core" target="classFrame">Script</A>
+<BR>
+<A HREF="com/google/bitcoin/core/ScriptException.html" title="class in com.google.bitcoin.core" target="classFrame">ScriptException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/SeedPeers.html" title="class in com.google.bitcoin.core" target="classFrame">SeedPeers</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Sha256Hash.html" title="class in com.google.bitcoin.core" target="classFrame">Sha256Hash</A>
+<BR>
+<A HREF="com/google/bitcoin/core/StoredBlock.html" title="class in com.google.bitcoin.core" target="classFrame">StoredBlock</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Transaction.html" title="class in com.google.bitcoin.core" target="classFrame">Transaction</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Transaction.SigHash.html" title="enum in com.google.bitcoin.core" target="classFrame">Transaction.SigHash</A>
+<BR>
+<A HREF="com/google/bitcoin/core/TransactionInput.html" title="class in com.google.bitcoin.core" target="classFrame">TransactionInput</A>
+<BR>
+<A HREF="com/google/bitcoin/core/TransactionOutPoint.html" title="class in com.google.bitcoin.core" target="classFrame">TransactionOutPoint</A>
+<BR>
+<A HREF="com/google/bitcoin/core/TransactionOutput.html" title="class in com.google.bitcoin.core" target="classFrame">TransactionOutput</A>
+<BR>
+<A HREF="com/google/bitcoin/core/UnknownMessage.html" title="class in com.google.bitcoin.core" target="classFrame">UnknownMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Utils.html" title="class in com.google.bitcoin.core" target="classFrame">Utils</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VarInt.html" title="class in com.google.bitcoin.core" target="classFrame">VarInt</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VerificationException.html" title="class in com.google.bitcoin.core" target="classFrame">VerificationException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VersionAck.html" title="class in com.google.bitcoin.core" target="classFrame">VersionAck</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VersionedChecksummedBytes.html" title="class in com.google.bitcoin.core" target="classFrame">VersionedChecksummedBytes</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VersionMessage.html" title="class in com.google.bitcoin.core" target="classFrame">VersionMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Wallet.html" title="class in com.google.bitcoin.core" target="classFrame">Wallet</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Wallet.BalanceType.html" title="enum in com.google.bitcoin.core" target="classFrame">Wallet.BalanceType</A>
+<BR>
+<A HREF="com/google/bitcoin/core/WalletEventListener.html" title="class in com.google.bitcoin.core" target="classFrame">WalletEventListener</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
View
144 target/site/apidocs/allclasses-noframe.html
@@ -0,0 +1,144 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:11 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+All Classes (BitCoinJ 0.2 API)
+</TITLE>
+
+<META NAME="date" CONTENT="2011-06-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameHeadingFont">
+<B>All Classes</B></FONT>
+<BR>
+
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT CLASS="FrameItemFont"><A HREF="com/google/bitcoin/core/Address.html" title="class in com.google.bitcoin.core">Address</A>
+<BR>
+<A HREF="com/google/bitcoin/core/AddressFormatException.html" title="class in com.google.bitcoin.core">AddressFormatException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/AddressMessage.html" title="class in com.google.bitcoin.core">AddressMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Base58.html" title="class in com.google.bitcoin.core">Base58</A>
+<BR>
+<A HREF="com/google/bitcoin/core/BitcoinSerializer.html" title="class in com.google.bitcoin.core">BitcoinSerializer</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Block.html" title="class in com.google.bitcoin.core">Block</A>
+<BR>
+<A HREF="com/google/bitcoin/core/BlockChain.html" title="class in com.google.bitcoin.core">BlockChain</A>
+<BR>
+<A HREF="com/google/bitcoin/core/BlockStore.html" title="interface in com.google.bitcoin.core"><I>BlockStore</I></A>
+<BR>
+<A HREF="com/google/bitcoin/core/BlockStoreException.html" title="class in com.google.bitcoin.core">BlockStoreException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/BoundedOverheadBlockStore.html" title="class in com.google.bitcoin.core">BoundedOverheadBlockStore</A>
+<BR>
+<A HREF="com/google/bitcoin/core/DiskBlockStore.html" title="class in com.google.bitcoin.core">DiskBlockStore</A>
+<BR>
+<A HREF="com/google/bitcoin/core/DnsDiscovery.html" title="class in com.google.bitcoin.core">DnsDiscovery</A>
+<BR>
+<A HREF="com/google/bitcoin/core/DumpedPrivateKey.html" title="class in com.google.bitcoin.core">DumpedPrivateKey</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/DumpWallet.html" title="class in com.google.bitcoin.examples">DumpWallet</A>
+<BR>
+<A HREF="com/google/bitcoin/core/ECKey.html" title="class in com.google.bitcoin.core">ECKey</A>
+<BR>
+<A HREF="com/google/bitcoin/core/GetBlocksMessage.html" title="class in com.google.bitcoin.core">GetBlocksMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/GetDataMessage.html" title="class in com.google.bitcoin.core">GetDataMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/InventoryItem.html" title="class in com.google.bitcoin.core">InventoryItem</A>
+<BR>
+<A HREF="com/google/bitcoin/core/InventoryItem.Type.html" title="enum in com.google.bitcoin.core">InventoryItem.Type</A>
+<BR>
+<A HREF="com/google/bitcoin/core/InventoryMessage.html" title="class in com.google.bitcoin.core">InventoryMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/IrcDiscovery.html" title="class in com.google.bitcoin.core">IrcDiscovery</A>
+<BR>
+<A HREF="com/google/bitcoin/bouncycastle/LICENSE.html" title="class in com.google.bitcoin.bouncycastle">LICENSE</A>
+<BR>
+<A HREF="com/google/bitcoin/core/ListMessage.html" title="class in com.google.bitcoin.core">ListMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/MemoryBlockStore.html" title="class in com.google.bitcoin.core">MemoryBlockStore</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Message.html" title="class in com.google.bitcoin.core">Message</A>
+<BR>
+<A HREF="com/google/bitcoin/core/NetworkConnection.html" title="class in com.google.bitcoin.core">NetworkConnection</A>
+<BR>
+<A HREF="com/google/bitcoin/core/NetworkParameters.html" title="class in com.google.bitcoin.core">NetworkParameters</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Peer.html" title="class in com.google.bitcoin.core">Peer</A>
+<BR>
+<A HREF="com/google/bitcoin/core/PeerAddress.html" title="class in com.google.bitcoin.core">PeerAddress</A>
+<BR>
+<A HREF="com/google/bitcoin/core/PeerDiscovery.html" title="interface in com.google.bitcoin.core"><I>PeerDiscovery</I></A>
+<BR>
+<A HREF="com/google/bitcoin/core/PeerDiscoveryException.html" title="class in com.google.bitcoin.core">PeerDiscoveryException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Ping.html" title="class in com.google.bitcoin.core">Ping</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/PingService.html" title="class in com.google.bitcoin.examples">PingService</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/PrintPeers.html" title="class in com.google.bitcoin.examples">PrintPeers</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/PrivateKeys.html" title="class in com.google.bitcoin.examples">PrivateKeys</A>
+<BR>
+<A HREF="com/google/bitcoin/core/ProtocolException.html" title="class in com.google.bitcoin.core">ProtocolException</A>
+<BR>
+<A HREF="com/google/bitcoin/examples/RefreshWallet.html" title="class in com.google.bitcoin.examples">RefreshWallet</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Script.html" title="class in com.google.bitcoin.core">Script</A>
+<BR>
+<A HREF="com/google/bitcoin/core/ScriptException.html" title="class in com.google.bitcoin.core">ScriptException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/SeedPeers.html" title="class in com.google.bitcoin.core">SeedPeers</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Sha256Hash.html" title="class in com.google.bitcoin.core">Sha256Hash</A>
+<BR>
+<A HREF="com/google/bitcoin/core/StoredBlock.html" title="class in com.google.bitcoin.core">StoredBlock</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Transaction.html" title="class in com.google.bitcoin.core">Transaction</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Transaction.SigHash.html" title="enum in com.google.bitcoin.core">Transaction.SigHash</A>
+<BR>
+<A HREF="com/google/bitcoin/core/TransactionInput.html" title="class in com.google.bitcoin.core">TransactionInput</A>
+<BR>
+<A HREF="com/google/bitcoin/core/TransactionOutPoint.html" title="class in com.google.bitcoin.core">TransactionOutPoint</A>
+<BR>
+<A HREF="com/google/bitcoin/core/TransactionOutput.html" title="class in com.google.bitcoin.core">TransactionOutput</A>
+<BR>
+<A HREF="com/google/bitcoin/core/UnknownMessage.html" title="class in com.google.bitcoin.core">UnknownMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Utils.html" title="class in com.google.bitcoin.core">Utils</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VarInt.html" title="class in com.google.bitcoin.core">VarInt</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VerificationException.html" title="class in com.google.bitcoin.core">VerificationException</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VersionAck.html" title="class in com.google.bitcoin.core">VersionAck</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VersionedChecksummedBytes.html" title="class in com.google.bitcoin.core">VersionedChecksummedBytes</A>
+<BR>
+<A HREF="com/google/bitcoin/core/VersionMessage.html" title="class in com.google.bitcoin.core">VersionMessage</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Wallet.html" title="class in com.google.bitcoin.core">Wallet</A>
+<BR>
+<A HREF="com/google/bitcoin/core/Wallet.BalanceType.html" title="enum in com.google.bitcoin.core">Wallet.BalanceType</A>
+<BR>
+<A HREF="com/google/bitcoin/core/WalletEventListener.html" title="class in com.google.bitcoin.core">WalletEventListener</A>
+<BR>
+</FONT></TD>
+</TR>
+</TABLE>
+
+</BODY>
+</HTML>
View
311 target/site/apidocs/com/google/bitcoin/bouncycastle/LICENSE.html
@@ -0,0 +1,311 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:11 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+LICENSE (BitCoinJ 0.2 API)
+</TITLE>
+
+<META NAME="date" CONTENT="2011-06-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="LICENSE (BitCoinJ 0.2 API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/LICENSE.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/google/bitcoin/bouncycastle/LICENSE.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="LICENSE.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+com.google.bitcoin.bouncycastle</FONT>
+<BR>
+Class LICENSE</H2>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</A>
+ <IMG SRC="../../../../resources/inherit.gif" ALT="extended by "><B>com.google.bitcoin.bouncycastle.LICENSE</B>
+</PRE>
+<HR>
+<DL>
+<DT><PRE>public class <B>LICENSE</B><DT>extends <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></DL>
+</PRE>
+
+<P>
+The Bouncy Castle License
+
+ Copyright (c) 2000-2008 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)
+ <p>
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so,
+ subject to the following conditions:
+ <p>
+ The above copyright notice and this permission notice shall be included in all copies or substantial
+ portions of the Software.
+ <p>
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
+ PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
+ OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ DEALINGS IN THE SOFTWARE.
+<P>
+
+<P>
+<HR>
+
+<P>
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/google/bitcoin/bouncycastle/LICENSE.html#licenseText">licenseText</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><B><A HREF="../../../../com/google/bitcoin/bouncycastle/LICENSE.html#LICENSE()">LICENSE</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../../com/google/bitcoin/bouncycastle/LICENSE.html#main(java.lang.String[])">main</A></B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;args)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TH ALIGN="left"><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</A></B></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#clone()" title="class or interface in java.lang">clone</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#equals(java.lang.Object)" title="class or interface in java.lang">equals</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#finalize()" title="class or interface in java.lang">finalize</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#getClass()" title="class or interface in java.lang">getClass</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#hashCode()" title="class or interface in java.lang">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notify()" title="class or interface in java.lang">notify</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#notifyAll()" title="class or interface in java.lang">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#toString()" title="class or interface in java.lang">toString</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait()" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long)" title="class or interface in java.lang">wait</A>, <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true#wait(long, int)" title="class or interface in java.lang">wait</A></CODE></TD>
+</TR>
+</TABLE>
+&nbsp;
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="licenseText"><!-- --></A><H3>
+licenseText</H3>
+<PRE>
+public static <A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A> <B>licenseText</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="LICENSE()"><!-- --></A><H3>
+LICENSE</H3>
+<PRE>
+public <B>LICENSE</B>()</PRE>
+<DL>
+</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TH>
+</TR>
+</TABLE>
+
+<A NAME="main(java.lang.String[])"><!-- --></A><H3>
+main</H3>
+<PRE>
+public static void <B>main</B>(<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</A>[]&nbsp;args)</PRE>
+<DL>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/LICENSE.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV CLASS&nbsp;
+&nbsp;NEXT CLASS</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/google/bitcoin/bouncycastle/LICENSE.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="LICENSE.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright &#169; 2011. All Rights Reserved.
+</BODY>
+</HTML>
View
145 target/site/apidocs/com/google/bitcoin/bouncycastle/class-use/LICENSE.html
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:11 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Class com.google.bitcoin.bouncycastle.LICENSE (BitCoinJ 0.2 API)
+</TITLE>
+
+<META NAME="date" CONTENT="2011-06-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Class com.google.bitcoin.bouncycastle.LICENSE (BitCoinJ 0.2 API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../com/google/bitcoin/bouncycastle/LICENSE.html" title="class in com.google.bitcoin.bouncycastle"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?com/google/bitcoin/bouncycastle//class-useLICENSE.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="LICENSE.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Class<br>com.google.bitcoin.bouncycastle.LICENSE</B></H2>
+</CENTER>
+No usage of com.google.bitcoin.bouncycastle.LICENSE
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../com/google/bitcoin/bouncycastle/LICENSE.html" title="class in com.google.bitcoin.bouncycastle"><FONT CLASS="NavBarFont1"><B>Class</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../../index.html?com/google/bitcoin/bouncycastle//class-useLICENSE.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="LICENSE.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright &#169; 2011. All Rights Reserved.
+</BODY>
+</HTML>
View
33 target/site/apidocs/com/google/bitcoin/bouncycastle/package-frame.html
@@ -0,0 +1,33 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:11 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+com.google.bitcoin.bouncycastle (BitCoinJ 0.2 API)
+</TITLE>
+
+<META NAME="date" CONTENT="2011-06-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+
+</HEAD>
+
+<BODY BGCOLOR="white">
+<FONT size="+1" CLASS="FrameTitleFont">
+<A HREF="../../../../com/google/bitcoin/bouncycastle/package-summary.html" target="classFrame">com.google.bitcoin.bouncycastle</A></FONT>
+<TABLE BORDER="0" WIDTH="100%" SUMMARY="">
+<TR>
+<TD NOWRAP><FONT size="+1" CLASS="FrameHeadingFont">
+Classes</FONT>&nbsp;
+<FONT CLASS="FrameItemFont">
+<BR>
+<A HREF="LICENSE.html" title="class in com.google.bitcoin.bouncycastle" target="classFrame">LICENSE</A></FONT></TD>
+</TR>
+</TABLE>
+
+
+</BODY>
+</HTML>
View
160 target/site/apidocs/com/google/bitcoin/bouncycastle/package-summary.html
@@ -0,0 +1,160 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:11 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+com.google.bitcoin.bouncycastle (BitCoinJ 0.2 API)
+</TITLE>
+
+<META NAME="date" CONTENT="2011-06-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="com.google.bitcoin.bouncycastle (BitCoinJ 0.2 API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../com/google/bitcoin/core/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/google/bitcoin/bouncycastle/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<H2>
+Package com.google.bitcoin.bouncycastle
+</H2>
+
+<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY="">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2">
+<B>Class Summary</B></FONT></TH>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD WIDTH="15%"><B><A HREF="../../../../com/google/bitcoin/bouncycastle/LICENSE.html" title="class in com.google.bitcoin.bouncycastle">LICENSE</A></B></TD>
+<TD>The Bouncy Castle License
+
+ Copyright (c) 2000-2008 The Legion Of The Bouncy Castle (http://www.bouncycastle.org)</TD>
+</TR>
+</TABLE>
+&nbsp;
+
+<P>
+<DL>
+</DL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-use.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV PACKAGE&nbsp;
+&nbsp;<A HREF="../../../../com/google/bitcoin/core/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/google/bitcoin/bouncycastle/package-summary.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright &#169; 2011. All Rights Reserved.
+</BODY>
+</HTML>
View
154 target/site/apidocs/com/google/bitcoin/bouncycastle/package-tree.html
@@ -0,0 +1,154 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:11 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+com.google.bitcoin.bouncycastle Class Hierarchy (BitCoinJ 0.2 API)
+</TITLE>
+
+<META NAME="date" CONTENT="2011-06-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="com.google.bitcoin.bouncycastle Class Hierarchy (BitCoinJ 0.2 API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../../../../com/google/bitcoin/core/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/google/bitcoin/bouncycastle/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+Hierarchy For Package com.google.bitcoin.bouncycastle
+</H2>
+</CENTER>
+<DL>
+<DT><B>Package Hierarchies:</B><DD><A HREF="../../../../overview-tree.html">All Packages</A></DL>
+<HR>
+<H2>
+Class Hierarchy
+</H2>
+<UL>
+<LI TYPE="circle">java.lang.<A HREF="http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang"><B>Object</B></A><UL>
+<LI TYPE="circle">com.google.bitcoin.bouncycastle.<A HREF="../../../../com/google/bitcoin/bouncycastle/LICENSE.html" title="class in com.google.bitcoin.bouncycastle"><B>LICENSE</B></A></UL>
+</UL>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Use</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Tree</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;<A HREF="../../../../com/google/bitcoin/core/package-tree.html"><B>NEXT</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/google/bitcoin/bouncycastle/package-tree.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-tree.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright &#169; 2011. All Rights Reserved.
+</BODY>
+</HTML>
View
145 target/site/apidocs/com/google/bitcoin/bouncycastle/package-use.html
@@ -0,0 +1,145 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:11 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Uses of Package com.google.bitcoin.bouncycastle (BitCoinJ 0.2 API)
+</TITLE>
+
+<META NAME="date" CONTENT="2011-06-27">
+
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../stylesheet.css" TITLE="Style">
+
+<SCRIPT type="text/javascript">
+function windowTitle()
+{
+ if (location.href.indexOf('is-external=true') == -1) {
+ parent.document.title="Uses of Package com.google.bitcoin.bouncycastle (BitCoinJ 0.2 API)";
+ }
+}
+</SCRIPT>
+<NOSCRIPT>
+</NOSCRIPT>
+
+</HEAD>
+
+<BODY BGCOLOR="white" onload="windowTitle();">
+<HR>
+
+
+<!-- ========= START OF TOP NAVBAR ======= -->
+<A NAME="navbar_top"><!-- --></A>
+<A HREF="#skip-navbar_top" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/google/bitcoin/bouncycastle/package-use.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_top"></A>
+<!-- ========= END OF TOP NAVBAR ========= -->
+
+<HR>
+<CENTER>
+<H2>
+<B>Uses of Package<br>com.google.bitcoin.bouncycastle</B></H2>
+</CENTER>
+No usage of com.google.bitcoin.bouncycastle
+<P>
+<HR>
+
+
+<!-- ======= START OF BOTTOM NAVBAR ====== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY="">
+<TR>
+<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY="">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Use</B></FONT>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+</EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+&nbsp;PREV&nbsp;
+&nbsp;NEXT</FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../../index.html?com/google/bitcoin/bouncycastle/package-use.html" target="_top"><B>FRAMES</B></A> &nbsp;
+&nbsp;<A HREF="package-use.html" target="_top"><B>NO FRAMES</B></A> &nbsp;
+&nbsp;<SCRIPT type="text/javascript">
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+ <A HREF="../../../../allclasses-noframe.html"><B>All Classes</B></A>
+</NOSCRIPT>
+
+
+</FONT></TD>
+</TR>
+</TABLE>
+<A NAME="skip-navbar_bottom"></A>
+<!-- ======== END OF BOTTOM NAVBAR ======= -->
+
+<HR>
+Copyright &#169; 2011. All Rights Reserved.
+</BODY>
+</HTML>
View
331 target/site/apidocs/com/google/bitcoin/core/Address.html
@@ -0,0 +1,331 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc (build 1.6.0-google-v3) on Mon Jun 27 16:26:10 CEST 2011 -->
+<META http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<TITLE>
+Address (BitCoin