Browse Source

Detect valid privkeys

master
Jonathan "Duke" Leto 6 years ago
parent
commit
960e80ce2d
  1. 15
      lib/Hush/Util.pm
  2. 5
      t/util.t

15
lib/Hush/Util.pm

@ -6,6 +6,7 @@ use Carp qw/longmess/;
our @EXPORT_OK = qw/
barf timing now
is_valid_zaddr
is_valid_privkey
/;
use Time::HiRes qw/gettimeofday tv_interval/;
@ -17,13 +18,25 @@ sub timing {
return sprintf "%1.4f", tv_interval($t0,$t1);
}
# valid for HUSH+ZEC, we need tables for other prefixes
sub is_valid_zaddr {
my ($z) = @_;
#warn "zaddr=$z";
# TODO: only base58 is valid
if ($z =~ m/^zc[a-z0-9]{93}$/i) {
return $z;
return 1;
} else {
return 0;
}
}
# we never look at taddr privkeys
# valid for HUSH+ZEC, we need tables for other prefixes
sub is_valid_privkey {
my ($p) = @_;
$p =~ s!^hushlist://!!g;
if ($p =~ m/^SK[a-z0-9]{53}$/i) {
return 1;
} else {
return 0;
}

5
t/util.t

@ -2,8 +2,7 @@
use strict;
use warnings;
use Test::Most;
use Hush::Util qw/is_valid_zaddr/;
use Hush::Util qw/is_valid_zaddr is_valid_privkey/;
my @INVALID = qw(
notevenCLOSE
@ -37,4 +36,6 @@ for my $z (@VALID) {
ok( is_valid_zaddr($z), "$z is a valid zaddr");
}
#is_valid_privkey($hushlist);
done_testing;

Loading…
Cancel
Save