37 lines
1.1 KiB
C#
37 lines
1.1 KiB
C#
namespace RelayClient.Crypto;
|
|
|
|
public static class KeyStorage
|
|
{
|
|
private static string GetKeyFolder()
|
|
{
|
|
var folder = Path.Combine(FileSystem.AppDataDirectory, "keys");
|
|
Directory.CreateDirectory(folder);
|
|
return folder;
|
|
}
|
|
|
|
public static void SavePrivateKey(string username, string privateKey)
|
|
{
|
|
File.WriteAllText(Path.Combine(GetKeyFolder(), $"{username}.private.key"), privateKey);
|
|
}
|
|
|
|
public static void SavePublicKey(string username, string publicKey)
|
|
{
|
|
File.WriteAllText(Path.Combine(GetKeyFolder(), $"{username}.public.key"), publicKey);
|
|
}
|
|
|
|
public static string LoadPrivateKey(string username)
|
|
{
|
|
return File.ReadAllText(Path.Combine(GetKeyFolder(), $"{username}.private.key"));
|
|
}
|
|
|
|
public static string LoadPublicKey(string username)
|
|
{
|
|
return File.ReadAllText(Path.Combine(GetKeyFolder(), $"{username}.public.key"));
|
|
}
|
|
|
|
public static bool HasKeys(string username)
|
|
{
|
|
return File.Exists(Path.Combine(GetKeyFolder(), $"{username}.private.key")) &&
|
|
File.Exists(Path.Combine(GetKeyFolder(), $"{username}.public.key"));
|
|
}
|
|
} |