#!/usr/bin/perl # Convert plain text Aegis vault format into otpauth URIs # Copyright : https://www.fsf.org/copyleft/gpl.html # Author : Dan Jacobson -- https://www.jidanni.org/ # Created On : Thu Apr 9 11:13:10 2020 # Last Modified On: Thu Apr 9 12:44:18 2020 # Update Count : 54 use strict; use warnings FATAL => q(all); use JSON; use URI; use URI::QueryParam; local $/; local $_ = <>; my $p = decode_json $_; for ( @{ $p->{db}->{entries} } ) { my $u = URI->new( "otpauth://" . %{$_}{type} . "/" . %{$_}{name} ); my %i = %{ $_->{info} }; for my $k (qw/icon info name type uuid/) { delete $_->{$k}; } $u->query_form_hash( %$_, %i ); print $u->as_string, "\n"; }