< Summary

Information
Class: LOCKnet.Core.DataAbstractions.VaultKdfParameters
Assembly: LOCKnet.Core
File(s): /home/runner/work/LOCKnet/LOCKnet/src/LOCKnet.Core/DataAbstractions/VaultKdfParameters.cs
Line coverage
100%
Covered lines: 10
Uncovered lines: 0
Coverable lines: 10
Total lines: 36
Line coverage: 100%
Branch coverage
50%
Covered branches: 1
Total branches: 2
Branch coverage: 50%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
get_HashAlgorithm()100%11100%
get_Iterations()100%11100%
get_KeyLengthBytes()100%11100%
get_SaltLengthBytes()100%11100%
Serialize()100%11100%
Deserialize(...)50%22100%

File(s)

/home/runner/work/LOCKnet/LOCKnet/src/LOCKnet.Core/DataAbstractions/VaultKdfParameters.cs

#LineLine coverage
 1using System.Text.Json;
 2
 3namespace LOCKnet.Core.DataAbstractions;
 4
 5/// <summary>
 6/// Beschreibt die KDF-Konfiguration fuer einen Vault-Header.
 7/// Die Parameter werden serialisiert gespeichert, damit kuenftige Unlocks
 8/// denselben Ableitungsweg reproduzieren koennen.
 9/// </summary>
 10public sealed class VaultKdfParameters
 11{
 12  /// <summary>Name des zugrunde liegenden Hash-Algorithmus.</summary>
 204913  public string HashAlgorithm { get; set; } = "SHA256";
 14
 15  /// <summary>Anzahl der KDF-Iterationen.</summary>
 109816  public int Iterations { get; set; }
 17
 18  /// <summary>Ausgabegroesse des abgeleiteten Schluessels in Bytes.</summary>
 202819  public int KeyLengthBytes { get; set; } = 32;
 20
 21  /// <summary>Empfohlene Salt-Laenge in Bytes fuer neue Header.</summary>
 202722  public int SaltLengthBytes { get; set; } = 32;
 23
 24  /// <summary>Serialisiert die Parameter in JSON fuer die Persistenz.</summary>
 25  public string Serialize()
 12026    => JsonSerializer.Serialize(this);
 27
 28  /// <summary>Deserialisiert einen JSON-String in KDF-Parameter.</summary>
 29  /// <param name="json">Der serialisierte JSON-String.</param>
 30  public static VaultKdfParameters Deserialize(string json)
 12731  {
 12732    ArgumentException.ThrowIfNullOrWhiteSpace(json);
 12733    return JsonSerializer.Deserialize<VaultKdfParameters>(json)
 12734      ?? throw new InvalidOperationException("KDF-Parameter konnten nicht deserialisiert werden.");
 12735  }
 36}