aboutsummaryrefslogtreecommitdiff
path: root/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs
diff options
context:
space:
mode:
Diffstat (limited to 'docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs')
-rw-r--r--docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs31
1 files changed, 30 insertions, 1 deletions
diff --git a/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs b/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs
index 009bde9..e6af39b 100644
--- a/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs
+++ b/docker/crupest-api/CrupestApi/CrupestApi.Secrets/SecretInfo.cs
@@ -1,3 +1,5 @@
+using System.Security.Cryptography;
+using System.Text;
using CrupestApi.Commons.Crud;
namespace CrupestApi.Secrets;
@@ -6,7 +8,7 @@ public class SecretInfo
{
[Column(NotNull = true)]
public string Key { get; set; } = default!;
- [Column(NotNull = true, ClientGenerate = true)]
+ [Column(NotNull = true, ClientGenerate = true, NoUpdate = true)]
public string Secret { get; set; } = default!;
[Column(DefaultEmptyForString = true)]
public string Description { get; set; } = default!;
@@ -16,4 +18,31 @@ public class SecretInfo
public bool Revoked { get; set; }
[Column(NotNull = true)]
public DateTime CreateTime { get; set; }
+
+ private static RandomNumberGenerator RandomNumberGenerator = RandomNumberGenerator.Create();
+
+ private static string GenerateRandomKey(int length)
+ {
+ const string alphanum = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
+ var result = new StringBuilder(length);
+ lock (RandomNumberGenerator)
+ {
+ for (int i = 0; i < length; i++)
+ {
+ result.Append(alphanum[RandomNumberGenerator.GetInt32(alphanum.Length)]);
+ }
+ }
+ return result.ToString();
+ }
+
+
+ public static string SecretDefaultValueGenerator()
+ {
+ return GenerateRandomKey(16);
+ }
+
+ public static DateTime CreateTimeDefaultValueGenerator()
+ {
+ return DateTime.UtcNow;
+ }
}