Advertisement
Guest User

Untitled

a guest
Jul 8th, 2017
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Perl 1.52 KB | None | 0 0
  1. #!/usr/bin/perl                                                                                                                                              
  2. use strict;
  3. use warnings;
  4. use SpadeCrypt::User;
  5. use SpadeCrypt::Drive;
  6. use SpadeCrypt::Error qw(error);
  7. use Getopt::Std;
  8.  
  9. my %opts;
  10. getopts("w:u:d:p:ms:c:h:b", \%opts);
  11.  
  12. my $username = $opts{u};
  13. my $password = $opts{p};
  14. my $webpass  = $opts{w};
  15. my $name     = $opts{d};
  16. my $size     = $opts{s};
  17. my $cipher   = $opts{c};
  18. my $hash     = $opts{h};
  19. my $master   = $opts{m};
  20. my $backup   = $opts{b};
  21.  
  22. usage() unless($username && $name && $password &&
  23.                $size && $cipher && $hash);
  24.  
  25. print "Your data will not be backed up!\n" unless $backup;
  26. print "You will be unable to reset your password!\n" unless $master;
  27.  
  28. my $user = SpadeCrypt::User->new({username => $username});
  29. my $drive = SpadeCrypt::Drive->new({user => $user, name => $name});
  30.  
  31. eval {
  32.     $drive->create($password, $size, $master, $cipher, $hash, $backup, $webpass);
  33. }
  34. if($@) {
  35.     SpadeCrypt::Error::error($user->id(), 0, $name . ": " . $@);
  36.     exit(1);
  37. }
  38.  
  39. eval {
  40.     $drive->mount($password);
  41. }
  42. if($@) {
  43.     SpadeCrypt::Error::error($user->id(), $drive->id(), $@);
  44.     exit(1);
  45. }
  46.  
  47. eval {
  48.     $drive->umount();
  49. }
  50. if($@) {
  51.     SpadeCrypt::Error::error($user->id(), $drive->id(), $@);
  52.     exit(1);
  53. }
  54.  
  55. $drive->close;
  56. $user->close;
  57.  
  58. sub usage {
  59.     print "Usage: $0 -u user -p passphrase -w webaccesspass -d drive -s size -c cipher -h hash-algorithm -b -m\n";
  60.     exit(1);
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement