/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
 * This file is part of the LibreOffice project.
 *
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
 */

module com { module sun { module star { module xml { module crypto {

/** Constants to identify Key Derivation Function
    @since LibreOffice 24.2
 */
constants KDFID
{
    /** PBKDF2

        Derive key material from password. When used with ODF, the
        "StartKeyGenerationAlgorithm" is applied to the password and the
        result is passed to KDF.
     */
    const long PBKDF2 = 1;

    /** OpenPGP/GnuPG

        Of course this is public key encryption, but it does produce
        key material for symmetric encryption. When used with ODF, the
        "StartKeyGenerationAlgorithm" digest is not used, as the input
        is not a password.
     */
    const long PGP_RSA_OAEP_MGF1P = 2;

    /** Argon2id

        Derive key material from password. When used with ODF, the
        "StartKeyGenerationAlgorithm" is applied to the password and the
        result is passed to KDF.

        @see https://www.rfc-editor.org/rfc/rfc9106.html
     */
    const long Argon2id = 3;
};

}; }; }; }; };

/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */
