Files
git.stella-ops.org/src/__Libraries/StellaOps.Cryptography.Kms/GcpKmsFacade.Helpers.cs
2026-02-04 19:59:20 +02:00

37 lines
1.6 KiB
C#

using Google.Cloud.Kms.V1;
using Google.Protobuf.WellKnownTypes;
using System;
namespace StellaOps.Cryptography.Kms;
internal sealed partial class GcpKmsFacade
{
private static GcpCryptoKeyVersionState MapState(CryptoKeyVersion.Types.CryptoKeyVersionState state)
=> state switch
{
CryptoKeyVersion.Types.CryptoKeyVersionState.Enabled => GcpCryptoKeyVersionState.Enabled,
CryptoKeyVersion.Types.CryptoKeyVersionState.Disabled => GcpCryptoKeyVersionState.Disabled,
CryptoKeyVersion.Types.CryptoKeyVersionState.DestroyScheduled => GcpCryptoKeyVersionState.DestroyScheduled,
CryptoKeyVersion.Types.CryptoKeyVersionState.Destroyed => GcpCryptoKeyVersionState.Destroyed,
CryptoKeyVersion.Types.CryptoKeyVersionState.PendingGeneration => GcpCryptoKeyVersionState.PendingGeneration,
CryptoKeyVersion.Types.CryptoKeyVersionState.PendingImport => GcpCryptoKeyVersionState.PendingImport,
CryptoKeyVersion.Types.CryptoKeyVersionState.ImportFailed => GcpCryptoKeyVersionState.ImportFailed,
CryptoKeyVersion.Types.CryptoKeyVersionState.GenerationFailed => GcpCryptoKeyVersionState.GenerationFailed,
_ => GcpCryptoKeyVersionState.Unspecified,
};
private DateTimeOffset ToDateTimeOffsetOrUtcNow(Timestamp? timestamp)
{
if (timestamp is null)
{
return _timeProvider.GetUtcNow();
}
if (timestamp.Seconds == 0 && timestamp.Nanos == 0)
{
return _timeProvider.GetUtcNow();
}
return timestamp.ToDateTimeOffset();
}
}