Skip to content

Commit 860b1aa

Browse files
committed
Add binary signature verification
1 parent e903482 commit 860b1aa

16 files changed

+789
-9
lines changed

CHANGELOG.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,20 @@
22

33
## Unreleased
44

5+
### Changed
6+
7+
- Coder output panel enhancements: All log entries now include timestamps, and you
8+
can filter messages by log level in the panel.
9+
10+
### Added
11+
512
- Update `/openDevContainer` to support all dev container features when hostPath
613
and configFile are provided.
714
- Add `coder.disableUpdateNotifications` setting to disable workspace template
815
update notifications.
9-
- Coder output panel enhancements: All log entries now include timestamps, and you
10-
can filter messages by log level in the panel.
16+
- Add binary signature verification. This can be disabled with
17+
`coder.disableSignatureVerification` if you purposefully run a binary that is
18+
not signed by Coder (for example a binary you built yourself).
1119

1220
## [v1.9.2](https://github.com/coder/vscode-coder/releases/tag/v1.9.2) 2025-06-25
1321

fixtures/pgp/cli

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
just a plain text file actually

fixtures/pgp/cli.invalid.asc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
this is not a valid signature

fixtures/pgp/cli.valid.asc

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
-----BEGIN PGP SIGNATURE-----
2+
3+
iQIzBAABCAAdFiEElI8elUlV/nwf5io1K2wJvi5wa2UFAmiBVqsACgkQK2wJvi5w
4+
a2XJ2A//bGHGzNcVSvB85NYd6ORVzr6RMSdGxezGU8WykXfQtd5LxqDi7f+SXxKU
5+
AVC8UlPKvmLqWiNcm2Obd2HKtjb2ZKlJ6r8FhwjrBGCtqmdnVdM9B6gaobTZnF9N
6+
8NqbzW9iyLCp1xzBfSp4nM/zcYD/04/0vWT12O6KSfaPfCpMKnpNM3ybnC6Ctfo/
7+
zczBZKt2M8dITYmXGmlZHNviHzxlFH9Mu8taarw87npBzvHcbnHPkBbNh5bQfEQn
8+
pDQqvcS1cNn8We3yVqpwcr40I9gjhvi9XqYtxlZh+p5xEOWtWhj04Rf/KJNseULy
9+
T76WI59BQcBfJYvkeexgIrT0WA/bv49ehwA+hRHtOCQ+QCYvOGe7WCVyFFwGfpIu
10+
HPz2uq5Y1ZM9b/T59bSK/HPR1YVOBL7s7bS4H/l3caATXTw7GhlQcrlkuvHCv81n
11+
O3bQy0+Ya3kVgckDO9ERT3X6z5to85s8qKHEzZzosTdTfFAWONwBZDCwPiYxbNCb
12+
Q9xC9ik3FniN8/IEXjHKq/r3jJqMUOFI7bDczkIxqux75qg5DC6dp5tmFSXWowgK
13+
0VeewR44+0r4tCgCYA/NW396iGL7ccABDmCaB98Z9HQRV8ds23SSk2YWGZhHB+nl
14+
VYd79zVD/UlGWT1R5ctUWbH5EbvocT3wqYPhwsHYWIIGg4ba/lA=
15+
=gs15
16+
-----END PGP SIGNATURE-----

fixtures/pgp/private.pgp

Lines changed: 205 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,205 @@
1+
-----BEGIN PGP PRIVATE KEY BLOCK-----
2+
3+
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
203+
TapMVt2/uSzfhwrpOTVslbN+GQ7L841ZEy8K
204+
=YS3p
205+
-----END PGP PRIVATE KEY BLOCK-----

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy