mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Code formatting cleanup
This commit is contained in:
@ -13,7 +13,6 @@ from django.db import models
|
||||
from django.urls import reverse
|
||||
from django.utils.encoding import force_bytes, python_2_unicode_compatible
|
||||
|
||||
from dcim.models import Device
|
||||
from utilities.models import CreatedUpdatedModel
|
||||
from .exceptions import InvalidKey
|
||||
from .hashers import SecretValidationHasher
|
||||
@ -54,9 +53,21 @@ class UserKey(CreatedUpdatedModel):
|
||||
copy of the master encryption key. The encrypted instance of the master key can be decrypted only with the user's
|
||||
matching (private) decryption key.
|
||||
"""
|
||||
user = models.OneToOneField(User, related_name='user_key', editable=False, on_delete=models.CASCADE)
|
||||
public_key = models.TextField(verbose_name='RSA public key')
|
||||
master_key_cipher = models.BinaryField(max_length=512, blank=True, null=True, editable=False)
|
||||
user = models.OneToOneField(
|
||||
to=User,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='user_key',
|
||||
editable=False
|
||||
)
|
||||
public_key = models.TextField(
|
||||
verbose_name='RSA public key'
|
||||
)
|
||||
master_key_cipher = models.BinaryField(
|
||||
max_length=512,
|
||||
blank=True,
|
||||
null=True,
|
||||
editable=False
|
||||
)
|
||||
|
||||
objects = UserKeyQuerySet.as_manager()
|
||||
|
||||
@ -172,10 +183,23 @@ class SessionKey(models.Model):
|
||||
"""
|
||||
A SessionKey stores a User's temporary key to be used for the encryption and decryption of secrets.
|
||||
"""
|
||||
userkey = models.OneToOneField(UserKey, related_name='session_key', on_delete=models.CASCADE, editable=False)
|
||||
cipher = models.BinaryField(max_length=512, editable=False)
|
||||
hash = models.CharField(max_length=128, editable=False)
|
||||
created = models.DateTimeField(auto_now_add=True)
|
||||
userkey = models.OneToOneField(
|
||||
to='secrets.UserKey',
|
||||
on_delete=models.CASCADE,
|
||||
related_name='session_key',
|
||||
editable=False
|
||||
)
|
||||
cipher = models.BinaryField(
|
||||
max_length=512,
|
||||
editable=False
|
||||
)
|
||||
hash = models.CharField(
|
||||
max_length=128,
|
||||
editable=False
|
||||
)
|
||||
created = models.DateTimeField(
|
||||
auto_now_add=True
|
||||
)
|
||||
|
||||
key = None
|
||||
|
||||
@ -234,10 +258,23 @@ class SecretRole(models.Model):
|
||||
By default, only superusers will have access to decrypt Secrets. To allow other users to decrypt Secrets, grant them
|
||||
access to the appropriate SecretRoles either individually or by group.
|
||||
"""
|
||||
name = models.CharField(max_length=50, unique=True)
|
||||
slug = models.SlugField(unique=True)
|
||||
users = models.ManyToManyField(User, related_name='secretroles', blank=True)
|
||||
groups = models.ManyToManyField(Group, related_name='secretroles', blank=True)
|
||||
name = models.CharField(
|
||||
max_length=50,
|
||||
unique=True
|
||||
)
|
||||
slug = models.SlugField(
|
||||
unique=True
|
||||
)
|
||||
users = models.ManyToManyField(
|
||||
to=User,
|
||||
related_name='secretroles',
|
||||
blank=True
|
||||
)
|
||||
groups = models.ManyToManyField(
|
||||
to=Group,
|
||||
related_name='secretroles',
|
||||
blank=True
|
||||
)
|
||||
|
||||
csv_headers = ['name', 'slug']
|
||||
|
||||
@ -276,11 +313,28 @@ class Secret(CreatedUpdatedModel):
|
||||
A Secret can be up to 65,536 bytes (64KB) in length. Each secret string will be padded with random data to a minimum
|
||||
of 64 bytes during encryption in order to protect short strings from ciphertext analysis.
|
||||
"""
|
||||
device = models.ForeignKey(Device, related_name='secrets', on_delete=models.CASCADE)
|
||||
role = models.ForeignKey('SecretRole', related_name='secrets', on_delete=models.PROTECT)
|
||||
name = models.CharField(max_length=100, blank=True)
|
||||
ciphertext = models.BinaryField(editable=False, max_length=65568) # 16B IV + 2B pad length + {62-65550}B padded
|
||||
hash = models.CharField(max_length=128, editable=False)
|
||||
device = models.ForeignKey(
|
||||
to='dcim.Device',
|
||||
on_delete=models.CASCADE,
|
||||
related_name='secrets'
|
||||
)
|
||||
role = models.ForeignKey(
|
||||
to='secrets.SecretRole',
|
||||
on_delete=models.PROTECT,
|
||||
related_name='secrets'
|
||||
)
|
||||
name = models.CharField(
|
||||
max_length=100,
|
||||
blank=True
|
||||
)
|
||||
ciphertext = models.BinaryField(
|
||||
max_length=65568, # 16B IV + 2B pad length + {62-65550}B padded
|
||||
editable=False
|
||||
)
|
||||
hash = models.CharField(
|
||||
max_length=128,
|
||||
editable=False
|
||||
)
|
||||
|
||||
plaintext = None
|
||||
csv_headers = ['device', 'role', 'name', 'plaintext']
|
||||
|
Reference in New Issue
Block a user