Android Open Source - bitcoin-wallet Key Ring From Project Back to project page bitcoin-wallet .
License The source code is released under:
Copyright (C) 2011 by Caleb Anderson
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 ...
If you think the Android project bitcoin-wallet listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
Java Source Code package net.dirtyfilthy.bitcoin.wallet;
/ * f r o m w w w . j a v a 2 s . c o m * /
import java.io.FileNotFoundException;
import java.io.IOException;
import java.security.InvalidAlgorithmParameterException;
import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.KeyStoreException;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.SecureRandom;
import java.security.cert.CertificateException;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import net.dirtyfilthy.bitcoin.core.Base58Hash160;
import net.dirtyfilthy.bouncycastle.jce.ECNamedCurveTable;
import net.dirtyfilthy.bouncycastle.jce.interfaces.ECPublicKey;
import net.dirtyfilthy.bouncycastle.jce.spec.ECParameterSpec;
public class KeyRing {
private KeyPairGenerator generator;
private SQLiteDatabase db;
private String password;
private Context context;
public KeyRing(Context c, SQLiteDatabase db, String password) throws NoSuchAlgorithmException, NoSuchProviderException, InvalidAlgorithmParameterException, KeyStoreException, CertificateException, FileNotFoundException, IOException{
ECParameterSpec ecSpec = ECNamedCurveTable.getParameterSpec("secp256k1" );
this.db=db;
this.context=c;
KeyPairGenerator generator = KeyPairGenerator.getInstance("ECDSA" , Wallet.SECURITY_PROVIDER);
generator.initialize(ecSpec, new SecureRandom());
}
KeyPair generateKeyPair() {
KeyPair pair = generator.generateKeyPair();
String hash=new Base58Hash160((java.security.interfaces.ECPublicKey) pair.getPublic()).toString();
ContentValues initialValues = new ContentValues();
initialValues.put("base58hash160" ,hash);
initialValues.put("public_key" , pair.getPublic().getEncoded());
initialValues.put("private_key" , pair.getPrivate().getEncoded());
db.insert("keys" , null, initialValues);
return pair;
}
}
Java Source Code List net.dirtyfilthy.bitcoin.core.Address.java net.dirtyfilthy.bitcoin.core.Base58Hash160.java net.dirtyfilthy.bitcoin.core.BlockChain.java net.dirtyfilthy.bitcoin.core.BlockExistsException.java net.dirtyfilthy.bitcoin.core.BlockStore.java net.dirtyfilthy.bitcoin.core.Block.java net.dirtyfilthy.bitcoin.core.BtcValue.java net.dirtyfilthy.bitcoin.core.ByteArrayable.java net.dirtyfilthy.bitcoin.core.InvalidBlockException.java net.dirtyfilthy.bitcoin.core.OpCode.java net.dirtyfilthy.bitcoin.core.OpData.java net.dirtyfilthy.bitcoin.core.OrphanBlockException.java net.dirtyfilthy.bitcoin.core.Script.java net.dirtyfilthy.bitcoin.core.TxIn.java net.dirtyfilthy.bitcoin.core.TxOut.java net.dirtyfilthy.bitcoin.core.Tx.java net.dirtyfilthy.bitcoin.protocol.AddressBook.java net.dirtyfilthy.bitcoin.protocol.AddressPacket.java net.dirtyfilthy.bitcoin.protocol.BlockPacket.java net.dirtyfilthy.bitcoin.protocol.ConnectionHandler.java net.dirtyfilthy.bitcoin.protocol.Connection.java net.dirtyfilthy.bitcoin.protocol.GetAddressPacket.java net.dirtyfilthy.bitcoin.protocol.GetBlocksPacket.java net.dirtyfilthy.bitcoin.protocol.GetDataPacket.java net.dirtyfilthy.bitcoin.protocol.GetHeadersPacket.java net.dirtyfilthy.bitcoin.protocol.HeadersPacket.java net.dirtyfilthy.bitcoin.protocol.InventoryPacket.java net.dirtyfilthy.bitcoin.protocol.InventoryVector.java net.dirtyfilthy.bitcoin.protocol.IrcBootStrap.java net.dirtyfilthy.bitcoin.protocol.MalformedPacketException.java net.dirtyfilthy.bitcoin.protocol.PacketFactory.java net.dirtyfilthy.bitcoin.protocol.PacketType.java net.dirtyfilthy.bitcoin.protocol.Packet.java net.dirtyfilthy.bitcoin.protocol.PingPacket.java net.dirtyfilthy.bitcoin.protocol.ProtocolVersion.java net.dirtyfilthy.bitcoin.protocol.ReplyPacket.java net.dirtyfilthy.bitcoin.protocol.TxPacket.java net.dirtyfilthy.bitcoin.protocol.VersionAckPacket.java net.dirtyfilthy.bitcoin.protocol.VersionPacket.java net.dirtyfilthy.bitcoin.util.Base58.java net.dirtyfilthy.bitcoin.util.BigIntegerTools.java net.dirtyfilthy.bitcoin.util.HashTools.java net.dirtyfilthy.bitcoin.util.KeyTools.java net.dirtyfilthy.bitcoin.util.MyHex.java net.dirtyfilthy.bitcoin.wallet.ExposedSQLiteCursor.java net.dirtyfilthy.bitcoin.wallet.InvalidPasswordException.java net.dirtyfilthy.bitcoin.wallet.KeyRing.java net.dirtyfilthy.bitcoin.wallet.SqlBlockStore.java net.dirtyfilthy.bitcoin.wallet.Wallet.java