2014-10-31 12:37:43 +01:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								package  crypto 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// import ( 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	"github.com/ethereum/go-ethereum/ethdb" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// "io/ioutil" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	"fmt" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	"os" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	"path" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	"testing" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// ) 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// // test if persistence layer works 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// func TestDBKeyManager(t *testing.T) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	memdb, _ := ethdb.NewMemDatabase() 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	keyManager0 := NewDBKeyManager(memdb) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err := keyManager0.Init("", 0, false) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	keyManager1 := NewDBKeyManager(memdb) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err = keyManager1.Init("", 0, false) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if string(keyManager0.PrivateKey()) != string(keyManager1.PrivateKey()) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Expected private keys %x, %x, to be identical via db persistence", keyManager0.PrivateKey(), keyManager1.PrivateKey()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err = keyManager1.Init("", 0, true) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if string(keyManager0.PrivateKey()) == string(keyManager1.PrivateKey()) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Expected private keys %x, %x, to be be different despite db persistence if force generate", keyManager0.PrivateKey(), keyManager1.PrivateKey()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// } 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// func TestFileKeyManager(t *testing.T) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	basedir0 := "/tmp/ethtest0" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	os.RemoveAll(basedir0) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	os.Mkdir(basedir0, 0777) 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// 	keyManager0 := NewFileKeyManager(basedir0) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err := keyManager0.Init("", 0, false) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// 	keyManager1 := NewFileKeyManager(basedir0) 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// 	err = keyManager1.Init("", 0, false) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if string(keyManager0.PrivateKey()) != string(keyManager1.PrivateKey()) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Expected private keys %x, %x, to be identical via db persistence", keyManager0.PrivateKey(), keyManager1.PrivateKey()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// 	err = keyManager1.Init("", 0, true) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if string(keyManager0.PrivateKey()) == string(keyManager1.PrivateKey()) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Expected private keys %x, %x, to be be different despite db persistence if force generate", keyManager0.PrivateKey(), keyManager1.PrivateKey()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// } 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// // cursor errors 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// func TestCursorErrors(t *testing.T) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	memdb, _ := ethdb.NewMemDatabase() 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	keyManager0 := NewDBKeyManager(memdb) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err := keyManager0.Init("", 0, false) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err = keyManager0.Init("", 1, false) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err == nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Expected cursor error") 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err = keyManager0.SetCursor(1) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err == nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Expected cursor error") 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// } 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// func TestExportImport(t *testing.T) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	memdb, _ := ethdb.NewMemDatabase() 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	keyManager0 := NewDBKeyManager(memdb) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err := keyManager0.Init("", 0, false) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	basedir0 := "/tmp/ethtest0" 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	os.RemoveAll(basedir0) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	os.Mkdir(basedir0, 0777) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	keyManager0.Export(basedir0) 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// 	keyManager1 := NewFileKeyManager(basedir0) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	err = keyManager1.Init("", 0, false) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	fmt.Printf("keyRing: %v\n", keyManager0.KeyPair()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	fmt.Printf("keyRing: %v\n", keyManager1.KeyPair()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	if string(keyManager0.PrivateKey()) != string(keyManager1.PrivateKey()) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 		t.Error("Expected private keys %x, %x, to be identical via export to filestore basedir", keyManager0.PrivateKey(), keyManager1.PrivateKey()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	} 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	path.Join("") 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// 	// memdb, _ = ethdb.NewMemDatabase() 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// keyManager2 := NewDBKeyManager(memdb) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// err = keyManager2.InitFromSecretsFile("", 0, path.Join(basedir0, "default.prv")) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// 	t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// if string(keyManager0.PrivateKey()) != string(keyManager2.PrivateKey()) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// 	t.Error("Expected private keys %s, %s, to be identical via export/import prv", keyManager0.PrivateKey(), keyManager1.PrivateKey()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// } 
							 
						 
					
						
							
								
									
										
										
										
											2014-06-29 16:02:23 +01:00 
										
									 
								 
							 
							
								
							 
							
								 
							 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2014-11-14 20:58:09 -06:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
							
								// 	// memdb, _ = ethdb.NewMemDatabase() 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// keyManager3 := NewDBKeyManager(memdb) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// err = keyManager3.InitFromSecretsFile("", 0, path.Join(basedir0, "default.mne")) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// if err != nil { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// 	t.Error("Unexpected error: ", err) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// if string(keyManager0.PrivateKey()) != string(keyManager3.PrivateKey()) { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// 	t.Error("Expected private keys %s, %s, to be identical via export/import mnemonic file", keyManager0.PrivateKey(), keyManager1.PrivateKey()) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// 	// } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
							
								// }