Test ran at 2024-12-10 12:44:03.330370+00:00 SOLUTION: keystoreada=1.4.0: Ada Keystore Origin: commit c8fa1d949f368fbc74099cd54fcf2f370a134222 from https://gitlab.com/stcarrez/ada-keystore.git Properties: Author: Stephane.Carrez@gmail.com Configuration: no modifiers Description: Ada Keystore GPR Scenario: KEYSTORE_BUILD := distrib | debug | optimize | profile | coverage GPR Scenario: KEYSTORE_LIBRARY_TYPE := relocatable | static | static-pic License: Apache-2.0 Long_Description: [![Build Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/build.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/summary) [![Test Status](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/tests.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/xunits) [![Coverage](https://img.shields.io/endpoint?url=https://porion.vacs.fr/porion/api/v1/projects/ada-keystore/badges/coverage.json)](https://porion.vacs.fr/porion/projects/view/ada-keystore/summary) # Overview Ada Keystore is a tool and library to store information in secure wallets and protect the stored information by encrypting the content. It is necessary to know one of the wallet password to access its content. Ada Keystore can be used to safely store passwords, credentials, bank accounts and even documents. Wallets are protected by a master key using AES-256 and the wallet master key is protected by a user password. The wallet defines up to 7 slots that identify a password key that is able to unlock the master key. To open a wallet, it is necessary to unlock one of these 7 slots by providing the correct password. Wallet key slots are protected by the user's password and the PBKDF2-HMAC-256 algorithm, a random salt, a random counter and they are encrypted using AES-256. Values stored in the wallet are protected by their own encryption keys using AES-256. A wallet can contain another wallet which is then protected by its own encryption keys and passwords (with 7 independent slots). Because the child wallet has its own master key, it is necessary to known the primary password and the child password to unlock the parent wallet first and then the child wallet. ## Documents * [Ada Keystore Guide](https://ada-keystore.readthedocs.io/en/latest/) [PDF](https://github.com/stcarrez/ada-keystore/blob/master/docs/keystore-book.pdf) Maintainer: Stephane.Carrez@gmail.com Maintainers_Logins: stcarrez Name: keystoreada Project_File: .alire/keystoreada.gpr Tag: security Tag: storage Tag: nosql Version: 1.4.0 Website: https://gitlab.com/stcarrez/ada-keystore Dependencies (direct): utilada^2.6.0 Dependencies (solution): utilada=2.6.0 Dependencies (graph): keystoreada=1.4.0 --> utilada=2.6.0 (^2.6.0) LOG: Note: Deploying keystoreada=1.4.0... Note: Deploying utilada=2.6.0... Note: Building keystoreada/.alire/keystoreada.gpr... Setup [mkdir] object directory for project UtilAda_Core [mkdir] library directory for project UtilAda_Core [mkdir] object directory for project UtilAda_Sys [mkdir] library directory for project UtilAda_Sys [mkdir] object directory for project KeystoreAda [mkdir] library directory for project KeystoreAda Compile [Ada] util-systems-types.ads [Ada] util-systems-constants.ads [Ada] util-systems-io.adb [Ada] util-systems-os.ads [Ada] util-properties-discrete.adb [Ada] util-properties.adb [Ada] util-properties-bundles.adb [Ada] util-properties-basic.adb [Ada] util-log-appenders-consoles.adb [Ada] util-log.adb [Ada] util-log-appenders-files.adb [Ada] util-log-appenders-factories.adb [Ada] util-log-appenders-formatter.adb [Ada] util-log-locations.adb [Ada] util-log-appenders.adb [Ada] util-log-loggers.adb [Ada] util-log-appenders-rolling_files.adb [Ada] util-files.adb [Ada] util-files-rolling.adb [Ada] util-events.adb [Ada] util-events-timers.adb [Ada] util-events-channels.adb [Ada] util-dates.adb [Ada] util-dates-rfc7231.adb [Ada] util-dates-iso8601.adb [Ada] util-dates-simple_format.adb [Ada] util-dates-formats.adb [Ada] util-commands-drivers.adb [Ada] util-commands.adb [Ada] util-commands-consoles-text.adb [Ada] util-commands-parsers-gnat_parser.adb [Ada] util-commands-raw_io.ads [Ada] util-commands-consoles.adb [Ada] util-commands-text_io.ads [Ada] util-commands-parsers.adb [Ada] util-beans-objects-iterators.adb [Ada] util-beans-factory.adb [Ada] util-beans-basic-lists.adb [Ada] util-beans-lists.ads [Ada] util-beans-objects-enums.adb [Ada] util-beans.ads [Ada] util-beans-objects-hash.adb [Ada] util-beans-objects.adb [Ada] util-beans-ranges.ads [Ada] util-beans-objects-records.adb [Ada] util-beans-objects-maps.adb [Ada] util-beans-basic.ads [Ada] util-beans-lists-strings.adb [Ada] util-beans-objects-pairs.adb [Ada] util-beans-objects-to_access.adb [Ada] util-beans-objects-lists.adb [Ada] util-beans-objects-vectors.adb [Ada] util-beans-methods.ads [Ada] util-beans-objects-datasets.adb [Ada] util-beans-basic-ranges.adb [Ada] util-beans-objects-time.adb [Ada] util-systems.ads [Ada] util-texts-formats.adb [Ada] util-texts-tokenizers.adb [Ada] util-texts-builders.adb [Ada] util-texts-transforms.adb [Ada] util-texts.ads [Ada] util-strings-builders.ads [Ada] util-strings-maps.ads [Ada] util-strings-transforms.adb [Ada] util-strings.adb [Ada] util-strings-maps_incensitive.ads [Ada] util-strings-builders-transforms.ads [Ada] util-strings-sets.ads [Ada] util-strings-tokenizers.ads [Ada] util-strings-vectors.ads [Ada] util-strings-formats.adb [Ada] util-listeners-observers.adb [Ada] util-listeners.ads [Ada] util-listeners-lifecycles.adb [Ada] util-concurrent-counters.adb [Ada] util-concurrent-arrays.adb [Ada] util-concurrent-copies.adb [Ada] util-concurrent-pools.adb [Ada] util-concurrent-fifos.adb [Ada] util-concurrent.ads [Ada] util-concurrent-locks.adb [Ada] util-concurrent-sequence_queues.adb [Ada] util-executors.adb [Ada] util-nullables.ads [Ada] util-stacks.adb [Ada] util-blobs.adb [Ada] util.ads [Ada] util-refs.adb [Ada] util-algorithms.ads [Ada] util-locales.adb [Ada] util-processes-os.adb [Ada] util-systems-dlls.adb [Ada] util-streams-raw.adb [Ada] util-processes.adb [Ada] util-processes-tools.adb [Ada] util-http-tools.adb [Ada] util-http-cookies.adb [Ada] util-http-rest.adb [Ada] util-http-headers.adb [Ada] util-http-mimes.adb [Ada] util-http-clients.adb [Ada] util-http-mockups.adb [Ada] util-http-clients-mockups.adb [Ada] util-http-rest-rest_get_vector.adb [Ada] util-http-parts.adb [Ada] util-mail.adb [Ada] util-http.adb [Ada] util-encoders-hmac-sha1.adb [Ada] util-encoders-hmac-sha256.adb [Ada] util-encoders-hmac-hotp.adb [Ada] util-encoders-kdf.ads [Ada] util-encoders-base32.adb [Ada] util-encoders-hmac.ads [Ada] util-encoders-base16.adb [Ada] util-encoders-aes.adb [Ada] util-encoders-uri.adb [Ada] util-encoders-sha256.adb [Ada] util-encoders-kdf-pbkdf2.adb [Ada] util-encoders-quoted_printable.adb [Ada] util-encoders-sha1.adb [Ada] util-encoders.adb [Ada] util-encoders-ecc.adb [Ada] util-encoders-base64.adb [Ada] util-encoders-kdf-pbkdf2_hmac_sha256.ads [Ada] util-measures.adb [Ada] util-streams-texts.adb [Ada] util-streams.adb [Ada] util-streams-aes.adb [Ada] util-streams-pipes.adb [Ada] util-streams-texts-tr.ads [Ada] util-streams-texts-wtr.ads [Ada] util-streams-files.adb [Ada] util-streams-base16.ads [Ada] util-streams-buffered-parts.adb [Ada] util-streams-buffered.adb [Ada] util-streams-sockets.adb [Ada] util-streams-base64.ads [Ada] util-streams-buffered-encoders.adb [Ada] util-serialize-io-form.adb [Ada] util-beans-objects-readers.adb [Ada] util-serialize-io-csv.adb [Ada] util-serialize-mappers-record_mapper.adb [Ada] util-properties-json.adb [Ada] util-serialize-io.adb [Ada] util-serialize-contexts.adb [Ada] util-serialize-io-json.adb [Ada] util-serialize-tools.adb [Ada] util-serialize.ads [Ada] util-serialize-mappers.adb [Ada] util-serialize-mappers-vector_mapper.adb [Ada] util-properties-form.adb [Ada] keystore-buffers.adb [Ada] keystore-repository-entries.adb [Ada] keystore-tools.adb [Ada] keystore-passwords-gpg.adb [Ada] keystore-repository.adb [Ada] keystore-io-files.adb [Ada] keystore-io.adb [Ada] keystore-random.adb [Ada] keystore.adb [Ada] keystore-io-refs.adb [Ada] keystore-repository-data.adb [Ada] keystore-keys.adb keystore.ads:347:25: warning: redundant conversion, "Container" is of type "Wallet'Class" [-gnatwr] [Ada] keystore-passwords-cmds.adb [Ada] keystore-files.adb [Ada] keystore-containers.adb [Ada] keystore-gpg.adb [Ada] keystore-passwords-files.adb [Ada] keystore-passwords-input.adb [Ada] keystore-repository-workers.adb [Ada] keystore-properties.adb [Ada] keystore-io-headers.adb [Ada] keystore-repository-keys.adb [Ada] keystore-logs.adb [Ada] keystore-passwords-unsafe.adb [Ada] keystore-passwords.adb [Ada] keystore-passwords-keys.adb [Ada] keystore-marshallers.adb Build Libraries [gprlib] utilada_core.lexch [gprlib] utilada_base.lexch [archive] libutilada_core.a [index] libutilada_core.a [gprlib] utilada_sys.lexch [archive] libutilada_base.a [index] libutilada_base.a [gprlib] keystoreada.lexch [archive] libutilada_sys.a [index] libutilada_sys.a [archive] libkeystoreada.a [index] libkeystoreada.a Build finished successfully in 18.54 seconds. keystoreada=1.4.0 successfully retrieved and built. Dependencies were solved as follows: + utilada 2.6.0 (new) Found declared GPR file: .alire/keystoreada.gpr