From 58981c49162441c4b530aeff99a87cb8d0e6d918 Mon Sep 17 00:00:00 2001 From: Jacob Coffee Date: Thu, 27 Nov 2025 10:47:31 -0600 Subject: [PATCH 1/3] add ssha256 for release files --- downloads/api.py | 2 +- .../migrations/0014_releasefile_sha256_sum.py | 18 ++++++++++++++++++ downloads/models.py | 1 + downloads/serializers.py | 1 + 4 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 downloads/migrations/0014_releasefile_sha256_sum.py diff --git a/downloads/api.py b/downloads/api.py index 73eb9b7bf..ea32421bc 100644 --- a/downloads/api.py +++ b/downloads/api.py @@ -68,7 +68,7 @@ class Meta(GenericResource.Meta): 'name', 'slug', 'creator', 'last_modified_by', 'os', 'release', 'description', 'is_source', 'url', 'gpg_signature_file', - 'md5_sum', 'filesize', 'download_button', 'sigstore_signature_file', + 'md5_sum', 'sha256_sum', 'filesize', 'download_button', 'sigstore_signature_file', 'sigstore_cert_file', 'sigstore_bundle_file', 'sbom_spdx2_file', ] filtering = { diff --git a/downloads/migrations/0014_releasefile_sha256_sum.py b/downloads/migrations/0014_releasefile_sha256_sum.py new file mode 100644 index 000000000..0aed813c2 --- /dev/null +++ b/downloads/migrations/0014_releasefile_sha256_sum.py @@ -0,0 +1,18 @@ +# Generated by Django 4.2.26 on 2025-11-27 16:45 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('downloads', '0013_alter_release_content_markup_type'), + ] + + operations = [ + migrations.AddField( + model_name='releasefile', + name='sha256_sum', + field=models.CharField(blank=True, max_length=200, verbose_name='SHA256 Sum'), + ), + ] diff --git a/downloads/models.py b/downloads/models.py index f37a041d0..6152b2431 100644 --- a/downloads/models.py +++ b/downloads/models.py @@ -359,6 +359,7 @@ class ReleaseFile(ContentManageable, NameSlugModel): "SPDX-2 SBOM URL", blank=True, help_text="SPDX-2 SBOM URL" ) md5_sum = models.CharField('MD5 Sum', max_length=200, blank=True) + sha256_sum = models.CharField('SHA256 Sum', max_length=200, blank=True) filesize = models.IntegerField(default=0) download_button = models.BooleanField(default=False, help_text="Use for the supernav download button for this OS") diff --git a/downloads/serializers.py b/downloads/serializers.py index 1ff57049f..29c95593d 100644 --- a/downloads/serializers.py +++ b/downloads/serializers.py @@ -43,6 +43,7 @@ class Meta: 'url', 'gpg_signature_file', 'md5_sum', + 'sha256_sum', 'filesize', 'download_button', 'resource_uri', From 5d40a532bb5acbbe3face7e9189fa95e121fe445 Mon Sep 17 00:00:00 2001 From: Jacob Coffee Date: Mon, 15 Dec 2025 13:41:27 -0600 Subject: [PATCH 2/3] add 256 frontend --- templates/downloads/release_detail.html | 2 ++ 1 file changed, 2 insertions(+) diff --git a/templates/downloads/release_detail.html b/templates/downloads/release_detail.html index 4faf51749..54b9c3dbd 100644 --- a/templates/downloads/release_detail.html +++ b/templates/downloads/release_detail.html @@ -72,6 +72,7 @@

{{ f.os.name }}

Operating System Description MD5 Sum + SHA256 Sum File Size {% if release_files|has_sigstore_materials %} Sigstore @@ -91,6 +92,7 @@

{{ f.os.name }}

{{ f.os.name }} {{ f.description }} {{ f.md5_sum }} + {{ f.sha256_sum|default:"n/a" }} {{ f.filesize|filesizeformat }} {% if release_files|has_sigstore_materials %} {% if f.sigstore_bundle_file %} From f5de55e342af721c7447bbec67575937194faad2 Mon Sep 17 00:00:00 2001 From: Jacob Coffee Date: Mon, 15 Dec 2025 13:44:39 -0600 Subject: [PATCH 3/3] sum -> Checksum --- templates/downloads/release_detail.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/downloads/release_detail.html b/templates/downloads/release_detail.html index 54b9c3dbd..fb38b86b7 100644 --- a/templates/downloads/release_detail.html +++ b/templates/downloads/release_detail.html @@ -71,8 +71,8 @@

{{ f.os.name }}

Version Operating System Description - MD5 Sum - SHA256 Sum + MD5 Checksum + SHA256 Checksum File Size {% if release_files|has_sigstore_materials %} Sigstore