| line |
l |
!l |
condition |
|
38
|
0 |
62 |
$data // {} |
|
140
|
2061 |
92 |
$_[0]{'headers'} //= scalar &$default($_[0]) |
|
141
|
332 |
92 |
$_[0]{'inner_headers'} //= scalar &$default($_[0]) |
|
142
|
1891 |
83 |
$_[0]{'meta'} //= scalar &$default($_[0]) |
|
143
|
26 |
83 |
$_[0]{'binaries'} //= scalar &$default($_[0]) |
|
144
|
96 |
62 |
$_[0]{'deleted_objects'} //= scalar &$default($_[0]) |
|
145
|
0 |
62 |
$_[0]{'raw'} //= undef |
|
150
|
48 |
62 |
$_[0]->headers->{'cipher_id'} //= scalar &$default($_[0]) |
|
152
|
14 |
62 |
$_[0]->headers->{'master_seed'} //= scalar &$default($_[0]) |
|
154
|
62 |
62 |
$_[0]->headers->{'encryption_iv'} //= scalar &$default($_[0]) |
|
155
|
14 |
62 |
$_[0]->headers->{'stream_start_bytes'} //= scalar &$default($_[0]) |
|
162
|
288 |
62 |
$_[0]->headers->{'kdf_parameters'} //= scalar &$default($_[0]) |
|
173
|
0 |
62 |
$_[0]->meta->{'database_name_changed'} //= scalar &$default($_[0]) |
|
175
|
0 |
62 |
$_[0]->meta->{'database_description_changed'} //= scalar &$default($_[0]) |
|
177
|
0 |
62 |
$_[0]->meta->{'default_username_changed'} //= scalar &$default($_[0]) |
|
180
|
0 |
62 |
$_[0]->meta->{'master_key_changed'} //= scalar &$default($_[0]) |
|
184
|
163 |
63 |
$_[0]->meta->{'custom_icons'} //= scalar &$default($_[0]) |
|
187
|
0 |
62 |
$_[0]->meta->{'recycle_bin_changed'} //= scalar &$default($_[0]) |
|
189
|
0 |
62 |
$_[0]->meta->{'entry_templates_group_changed'} //= scalar &$default($_[0]) |
|
194
|
0 |
62 |
$_[0]->meta->{'settings_changed'} //= scalar &$default($_[0]) |
|
222
|
248 |
62 |
$self->{'meta'}{'memory_protection'} //= {} |
|
511
|
4 |
1 |
shift() // (return) |
|
549
|
60 |
62 |
$self->{'meta'}{'custom_data'} //= {} |
|
576
|
0 |
0 |
$self->custom_data(@_) // (return) |
|
584
|
114 |
63 |
$self->{'headers'}{'public_custom_data'} //= {} |
|
641
|
18 |
0 |
shift() // (return) |
|
852
|
1 |
5 |
$_->custom_icon_uuid // "" |
|
890
|
2 |
0 |
($args{'max_items'} // $self->history_max_items) // 10 |
|
891
|
2 |
0 |
($args{'max_size'} // $self->history_max_size) // 6291456 |
|
892
|
2 |
0 |
($args{'max_age'} // $self->maintenance_history_days) // 365 |
|
974
|
75 |
0 |
$self->kdf_parameters->{'$UUID'} // "" |
|
1059
|
6 |
0 |
$object->{'uuid'} // (return) |
|
1062
|
6 |
0 |
$meta->{'recycle_bin_uuid'} // "" |
|
1063
|
6 |
0 |
$meta->{'entry_templates_group'} // "" |
|
1064
|
6 |
0 |
$meta->{'last_selected_group'} // "" |
|
1065
|
6 |
0 |
$meta->{'last_top_visible_group'} // "" |
|
1074
|
13 |
0 |
shift() // (return) |
|
1081
|
0 |
26 |
$_->{'previous_parent_group'} // "" |
|
1096
|
1 |
0 |
shift() // (return) |
|
1099
|
1 |
0 |
$meta->{'recycle_bin_uuid'} // "" |
|
1100
|
1 |
0 |
$meta->{'entry_templates_group'} // "" |
|
1101
|
1 |
0 |
$meta->{'last_selected_group'} // "" |
|
1102
|
1 |
0 |
$meta->{'last_top_visible_group'} // "" |
|
1105
|
0 |
2 |
$_->{'last_top_visible_entry'} // "" |
|
1106
|
0 |
2 |
$_->{'previous_parent_group'} // "" |
|
1109
|
0 |
3 |
$_->{'previous_parent_group'} // "" |
| line |
l |
!l&&r |
!l&&!r |
condition |
|
80
|
0 |
1 |
0 |
$KEYS{$self} // () |
|
|
0 |
1 |
0 |
$SAFE{$self} // () |
|
137
|
97 |
62 |
0 |
$_[0]{'sig1'} //= $default |
|
138
|
118 |
62 |
0 |
$_[0]{'sig2'} //= $default |
|
139
|
690 |
61 |
0 |
$_[0]{'version'} //= $default |
|
148
|
0 |
0 |
62 |
$_[0]->headers->{'comment'} //= $default |
|
151
|
2 |
62 |
0 |
$_[0]->headers->{'compression_flags'} //= $default |
|
170
|
0 |
0 |
62 |
$_[0]->meta->{'generator'} //= $default |
|
171
|
0 |
0 |
62 |
$_[0]->meta->{'header_hash'} //= $default |
|
172
|
0 |
0 |
62 |
$_[0]->meta->{'database_name'} //= $default |
|
174
|
0 |
0 |
62 |
$_[0]->meta->{'database_description'} //= $default |
|
176
|
0 |
0 |
62 |
$_[0]->meta->{'default_username'} //= $default |
|
178
|
0 |
62 |
0 |
$_[0]->meta->{'maintenance_history_days'} //= $default |
|
179
|
0 |
0 |
62 |
$_[0]->meta->{'color'} //= $default |
|
181
|
0 |
62 |
0 |
$_[0]->meta->{'master_key_change_rec'} //= $default |
|
182
|
0 |
62 |
0 |
$_[0]->meta->{'master_key_change_force'} //= $default |
|
185
|
7 |
62 |
0 |
$_[0]->meta->{'recycle_bin_enabled'} //= $default |
|
186
|
7 |
62 |
0 |
$_[0]->meta->{'recycle_bin_uuid'} //= $default |
|
188
|
0 |
62 |
0 |
$_[0]->meta->{'entry_templates_group'} //= $default |
|
190
|
0 |
62 |
0 |
$_[0]->meta->{'last_selected_group'} //= $default |
|
191
|
0 |
62 |
0 |
$_[0]->meta->{'last_top_visible_group'} //= $default |
|
192
|
2 |
62 |
0 |
$_[0]->meta->{'history_max_items'} //= $default |
|
193
|
2 |
62 |
0 |
$_[0]->meta->{'history_max_size'} //= $default |
|
198
|
0 |
0 |
62 |
$_[0]->memory_protection->{'protect_title'} //= $default |
|
199
|
0 |
0 |
62 |
$_[0]->memory_protection->{'protect_username'} //= $default |
|
200
|
0 |
62 |
0 |
$_[0]->memory_protection->{'protect_password'} //= $default |
|
201
|
0 |
0 |
62 |
$_[0]->memory_protection->{'protect_url'} //= $default |
|
202
|
0 |
0 |
62 |
$_[0]->memory_protection->{'protect_notes'} //= $default |
|
241
|
1 |
1 |
9 |
$_->{'name'} || nonempty($_->{'last_modification_time'}) |
|
246
|
1 |
2 |
156 |
$_->previous_parent_group || nonempty($_->tags || &any(sub {
nonempty($_->{'last_modification_time'});
}
, values %{$_->custom_data;})) |
|
252
|
1 |
1 |
24 |
$_->previous_parent_group || defined $_->quality_check && !$_->quality_check || &any(sub {
nonempty($_->{'last_modification_time'});
}
, values %{$_->custom_data;}) |
|
275
|
616 |
62 |
0 |
$self->{'root'} //= $self->_implicit_root |
|
408
|
0 |
15 |
0 |
delete $args{'group'} // $self->root |
|
426
|
0 |
136 |
0 |
delete $args{'base'} // $self->root |
|
440
|
0 |
20 |
0 |
delete $args{'group'} // $self->root |
|
458
|
0 |
209 |
0 |
delete $args{'base'} // $self->root |
|
469
|
0 |
108 |
0 |
delete $args{'base'} // $self->root |
|
484
|
0 |
0 |
0 |
$args{'uuid'} or $args{'data'} |
|
494
|
0 |
0 |
0 |
&first(sub {
$_->{'uuid'} eq $uuid;
}
, @{$self->custom_icons;}) // do {
push @{$self->custom_icons;}, my $i = {"uuid", $uuid};
$i
} |
|
523
|
0 |
9 |
0 |
$args{'uuid'} // generate_uuid() |
|
554
|
1 |
0 |
0 |
$args{'key'} or $args{'value'} |
|
615
|
0 |
0 |
11 |
$uuid eq "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0" or $uuid eq "0000000000000000" |
|
767
|
2 |
0 |
4 |
$string->{'protect'} // $self->memory_protection($string_key) |
|
890
|
0 |
2 |
0 |
$args{'max_items'} // $self->history_max_items |
|
891
|
0 |
2 |
0 |
$args{'max_size'} // $self->history_max_size |
|
892
|
2 |
0 |
0 |
$args{'max_age'} // $self->maintenance_history_days |
|
940
|
0 |
176 |
0 |
$params //= $self->kdf_parameters |
|
943
|
176 |
0 |
0 |
$params || !defined($params->{'$UUID'}) |
|
954
|
158 |
0 |
0 |
$params->{'S'} //= $self->transform_seed |
|
955
|
158 |
0 |
0 |
$params->{'R'} //= $self->transform_rounds |
|
968
|
85 |
0 |
0 |
$self->headers->{'kdf_parameters'}{$param} //= &random_bytes(32) |
|
974
|
3 |
72 |
0 |
$File::KDBX::KDF::ROUNDS_INFO{$self->kdf_parameters->{'$UUID'} // ""} // $File::KDBX::KDF::DEFAULT_ROUNDS_INFO |
|
979
|
74 |
1 |
0 |
$self->headers->{'kdf_parameters'}{$info->{'p'}} //= $info->{'d'} |
|
987
|
0 |
46 |
0 |
$args{'uuid'} //= $self->cipher_id |
|
988
|
0 |
46 |
0 |
$args{'iv'} //= $self->encryption_iv |
|
999
|
0 |
18 |
0 |
delete $args{'id'} // $self->inner_random_stream_id |
|
|
0 |
18 |
0 |
$args{'stream_id'} //= delete $args{'id'} // $self->inner_random_stream_id |
|
1000
|
0 |
18 |
0 |
$args{'key'} //= $self->inner_random_stream_key |
|
1011
|
9 |
62 |
0 |
$self->headers->{'inner_random_stream_id'} //= do {
my $version = $self->minimum_version;
$version < 262144 ? 2 : 3
} |
|
|
17 |
71 |
0 |
$self->inner_headers->{'inner_random_stream_id'} //= ($self->headers->{'inner_random_stream_id'} //= do {
my $version = $self->minimum_version;
$version < 262144 ? 2 : 3
}) |
|
1028
|
9 |
62 |
0 |
$self->headers->{'inner_random_stream_key'} //= &random_bytes(64) |
|
|
39 |
71 |
0 |
$self->inner_headers->{'inner_random_stream_key'} //= ($self->headers->{'inner_random_stream_key'} //= &random_bytes(64)) |