Files
SocialPub/PrivaPub/Models/PushKeys.cs
T

18 lines
906 B
C#
Raw Normal View History

using MongoDB.Entities;
namespace PrivaPub.Models
{
// The server's VAPID key pair (RFC 8292, completion program R9): one P-256 key, made the first time something needs it
// (Infrastructure/Push/Vapid) and kept here, one document with the fixed id `vapid`. Every push carries a JWT it signs,
// and the push services tie each subscription to its public key, which the instance API and app registrations
// advertise. Never in a backup and never dropped by a restore (ServerBackup.Excluded): a restored key would break every
// subscription a client made since.
public class PushKeys : Entity
{
public const string Name = "vapid";
public string PublicKey { get; set; }//the uncompressed point (0x04 || X || Y), base64url without padding
public string PrivateKey { get; set; }//the private scalar D, base64url without padding
public DateTime CreatedAt { get; set; } = DateTime.UtcNow;
}
}