37 lines
1.6 KiB
C#
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();
|
|
}
|
|
} |