blob: a05b96d7711b9d3a6bc04cf440a8679c4616003d [file] [log] [blame]
Matthias Andreas Benkard4e8423d2021-12-19 22:56:09 +01001package eu.mulk.jgvariant.ostree;
2
3import eu.mulk.jgvariant.core.Decoder;
4import eu.mulk.jgvariant.core.Variant;
5import java.nio.charset.StandardCharsets;
6import java.util.List;
7
8/**
9 * A collection of cryptographic signatures for a {@link Summary}.
10 *
11 * <p>Stored as a file named {@code summary.sig} in the OSTree repository root.
12 *
13 * <p>Reference: {@code ostree-repo-static-delta-private.h#OSTREE_SUMMARY_SIG_GVARIANT_STRING}
14 */
15public record SummarySignature(List<Signature> signatures) {
16
17 /** A cryptographic signature. */
18 public record Signature(String key, Variant data) {
19
20 private static final Decoder<Signature> DECODER =
21 Decoder.ofStructure(
22 Signature.class, Decoder.ofString(StandardCharsets.UTF_8), Decoder.ofVariant());
23
24 public static Decoder<Signature> decoder() {
25 return DECODER;
26 }
27 }
28
29 private static final Decoder<SummarySignature> DECODER =
30 Decoder.ofArray(Signature.decoder()).map(SummarySignature::new);
31
32 public static Decoder<SummarySignature> decoder() {
33 return DECODER;
34 }
35}