@@ -105,26 +105,24 @@ fn generate_keypair(userid: String) -> Result<(), Error> {
105105 Ok ( ( ) )
106106}
107107
108- fn print_public_key ( ) -> Result < ( ) , Error > {
108+ fn get_keypair ( ) -> Result < KeyData , Error > {
109109 let config = Config :: load ( ) ?;
110110 let service = config. service ( ) ;
111111 let account = config. user_id ( ) ;
112112 let secret_str = get_keychain_item ( service, account) ?;
113113 let secret = to_32_bytes ( & secret_str) ?;
114114
115- let keypair = KeyData :: load ( & config, secret) ?;
115+ KeyData :: load ( & config, secret)
116+ }
117+
118+ fn print_public_key ( ) -> Result < ( ) , Error > {
119+ let keypair = get_keypair ( ) ?;
116120 println ! ( "{}" , keypair. public( ) ) ;
117121 Ok ( ( ) )
118122}
119123
120124fn get_fingerprint ( ) -> Result < pbp:: Fingerprint , Error > {
121- let config = Config :: load ( ) ?;
122- let service = config. service ( ) ;
123- let account = config. user_id ( ) ;
124- let secret_str = get_keychain_item ( service, account) ?;
125- let secret = to_32_bytes ( & secret_str) ?;
126-
127- let keypair = KeyData :: load ( & config, secret) ?;
125+ let keypair = get_keypair ( ) ?;
128126 Ok ( keypair. fingerprint ( ) )
129127}
130128
@@ -147,14 +145,7 @@ fn verify_commit() -> Result<(), Error> {
147145 let mut stdin = std:: io:: stdin ( ) ;
148146 stdin. read_to_string ( & mut commit) ?;
149147
150- let config = Config :: load ( ) ?;
151- let service = config. service ( ) ;
152- let account = config. user_id ( ) ;
153- let secret_str = get_keychain_item ( service, account) ?;
154- let secret = to_32_bytes ( & secret_str) ?;
155-
156- let config = Config :: load ( ) ?;
157- let keypair = KeyData :: load ( & config, secret) ?;
148+ let keypair = get_keypair ( ) ?;
158149
159150 let sig = keypair. sign ( commit. as_bytes ( ) ) ?;
160151
@@ -165,13 +156,7 @@ fn verify_commit() -> Result<(), Error> {
165156
166157// Signs a hex string and prints the signature
167158fn sign_from_hex ( hex : String ) -> Result < ( ) , Error > {
168- let config = Config :: load ( ) ?;
169- let service = config. service ( ) ;
170- let account = config. user_id ( ) ;
171- let secret_str = get_keychain_item ( service, account) ?;
172- let secret = to_32_bytes ( & secret_str) ?;
173-
174- let keypair = KeyData :: load ( & config, secret) ?;
159+ let keypair = get_keypair ( ) ?;
175160 // remove any leading 0x prefix
176161 let hex = hex. trim_start_matches ( "0x" ) . trim_end_matches ( ' ' ) ;
177162 let data = hex:: decode ( hex) ?;
0 commit comments