mirror of
https://github.com/bitwarden/server.git
synced 2026-02-02 07:03:11 +08:00
* Device deactivation * Check active status in service * Format and work around potential deadlocks
51 lines
1.8 KiB
C#
51 lines
1.8 KiB
C#
using System.ComponentModel.DataAnnotations;
|
|
using Bit.Core.Utilities;
|
|
|
|
#nullable enable
|
|
|
|
namespace Bit.Core.Entities;
|
|
|
|
public class Device : ITableObject<Guid>
|
|
{
|
|
public Guid Id { get; set; }
|
|
public Guid UserId { get; set; }
|
|
[MaxLength(50)]
|
|
public string Name { get; set; } = null!;
|
|
public Enums.DeviceType Type { get; set; }
|
|
[MaxLength(50)]
|
|
public string Identifier { get; set; } = null!;
|
|
[MaxLength(255)]
|
|
public string? PushToken { get; set; }
|
|
public DateTime CreationDate { get; internal set; } = DateTime.UtcNow;
|
|
public DateTime RevisionDate { get; internal set; } = DateTime.UtcNow;
|
|
|
|
/// <summary>
|
|
/// Intended to be the users symmetric key that is encrypted in some form, the current way to encrypt this is with
|
|
/// the devices public key.
|
|
/// </summary>
|
|
public string? EncryptedUserKey { get; set; }
|
|
|
|
/// <summary>
|
|
/// Intended to be the public key that was generated for a device upon trust and encrypted. Currenly encrypted using
|
|
/// a users symmetric key so that when trusted and unlocked a user can decrypt the public key for all their devices.
|
|
/// This enabled a user to rotate the keys for all of their devices.
|
|
/// </summary>
|
|
public string? EncryptedPublicKey { get; set; }
|
|
|
|
/// <summary>
|
|
/// Intended to be the private key that was generated for a device upon trust and encrypted. Currenly encrypted with
|
|
/// the devices key, that upon successful login a user can decrypt this value and therefor decrypt their vault.
|
|
/// </summary>
|
|
public string? EncryptedPrivateKey { get; set; }
|
|
|
|
/// <summary>
|
|
/// Whether the device is active for the user.
|
|
/// </summary>
|
|
public bool Active { get; set; } = true;
|
|
|
|
public void SetNewId()
|
|
{
|
|
Id = CoreHelpers.GenerateComb();
|
|
}
|
|
}
|