18 lines
906 B
C#
18 lines
906 B
C#
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;
|
||
|
|
}
|
||
|
|
}
|