Resolve tabbing/indentation issues
This commit is contained in:
parent
44153bc562
commit
5c13b626a8
@ -1,19 +1,19 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from djangoldp.admin import DjangoLDPAdmin
|
from djangoldp.admin import DjangoLDPAdmin
|
||||||
|
|
||||||
from .models import VAPIDKeyset
|
from .models import VAPIDKeyset
|
||||||
|
|
||||||
|
|
||||||
class VAPIDKeysetAdmin(DjangoLDPAdmin):
|
class VAPIDKeysetAdmin(DjangoLDPAdmin):
|
||||||
readonly_fields = ('public_key_view', 'private_key_view')
|
readonly_fields = ('public_key_view', 'private_key_view')
|
||||||
|
|
||||||
def public_key_view(self, obj):
|
def public_key_view(self, obj):
|
||||||
return obj.public_key
|
return obj.public_key
|
||||||
|
|
||||||
def private_key_view(self, obj):
|
def private_key_view(self, obj):
|
||||||
return obj.private_key.tobytes()
|
return obj.private_key.tobytes()
|
||||||
|
|
||||||
class Meta:
|
|
||||||
verbose_name = 'VAPID key-set'
|
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
verbose_name = 'VAPID key-set'
|
||||||
|
|
||||||
admin.site.register(VAPIDKeyset, VAPIDKeysetAdmin)
|
admin.site.register(VAPIDKeyset, VAPIDKeysetAdmin)
|
||||||
|
@ -1,21 +1,21 @@
|
|||||||
import ecdsa
|
|
||||||
from ecdsa import SigningKey
|
|
||||||
from base64 import urlsafe_b64encode
|
from base64 import urlsafe_b64encode
|
||||||
|
|
||||||
|
import ecdsa
|
||||||
from django.core.management.base import BaseCommand
|
from django.core.management.base import BaseCommand
|
||||||
from djangoldp_webpushnotification.models import VAPIDKeyset
|
from djangoldp_webpushnotification.models import VAPIDKeyset
|
||||||
|
from ecdsa import SigningKey
|
||||||
|
|
||||||
|
|
||||||
class Command(BaseCommand):
|
class Command(BaseCommand):
|
||||||
help = "Generate VAPID key pair"
|
help = "Generate VAPID key pair"
|
||||||
|
|
||||||
def handle(self, *args, **options):
|
def handle(self, *args, **options):
|
||||||
priv_key = SigningKey.generate(curve=ecdsa.NIST256p)
|
priv_key = SigningKey.generate(curve=ecdsa.NIST256p)
|
||||||
|
|
||||||
VAPIDKeyset.objects.create(
|
VAPIDKeyset.objects.create(
|
||||||
private_key=urlsafe_b64encode(priv_key.to_string()).strip(b"=")
|
private_key=urlsafe_b64encode(priv_key.to_string()).strip(b"=")
|
||||||
)
|
)
|
||||||
|
|
||||||
self.stdout.write("VAPID Keyset succesfully generated")
|
self.stdout.write("VAPID Keyset succesfully generated")
|
||||||
|
|
||||||
exit(0)
|
exit(0)
|
||||||
|
@ -1,24 +1,25 @@
|
|||||||
from ecdsa import SigningKey, NIST256p
|
|
||||||
from django.db import models
|
|
||||||
from base64 import urlsafe_b64decode, urlsafe_b64encode
|
from base64 import urlsafe_b64decode, urlsafe_b64encode
|
||||||
|
|
||||||
|
from django.db import models
|
||||||
|
from ecdsa import NIST256p, SigningKey
|
||||||
|
|
||||||
|
|
||||||
class VAPIDKeyset(models.Model):
|
class VAPIDKeyset(models.Model):
|
||||||
private_key = models.BinaryField(max_length=43)
|
private_key = models.BinaryField(max_length=43)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return "public_key:{}... private_key:{}...".format(
|
return "public_key:{}... private_key:{}...".format(
|
||||||
self.public_key[:10],
|
self.public_key[:10],
|
||||||
self.private_key.tobytes()[:10]
|
self.private_key.tobytes()[:10]
|
||||||
)
|
)
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def public_key(self):
|
def public_key(self):
|
||||||
key_str = self.private_key.tobytes()
|
key_str = self.private_key.tobytes()
|
||||||
padding = len(key_str) % 4
|
padding = len(key_str) % 4
|
||||||
key_str += b"=" * padding
|
key_str += b"=" * padding
|
||||||
key = SigningKey.from_string(
|
key = SigningKey.from_string(
|
||||||
urlsafe_b64decode(key_str),
|
urlsafe_b64decode(key_str),
|
||||||
curve=NIST256p
|
curve=NIST256p
|
||||||
).get_verifying_key()
|
).get_verifying_key()
|
||||||
return urlsafe_b64encode(b"\x04" + key.to_string()).strip(b"=")
|
return urlsafe_b64encode(b"\x04" + key.to_string()).strip(b"=")
|
||||||
|
Reference in New Issue
Block a user