Skip to content

Commit 18a0863

Browse files
committed
cose: wip
1 parent 8013834 commit 18a0863

File tree

1 file changed

+28
-10
lines changed
  • cryptography-serialization/cose/src/commonMain/kotlin

1 file changed

+28
-10
lines changed

cryptography-serialization/cose/src/commonMain/kotlin/cose.kt

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,58 +16,74 @@ public sealed interface CoseObject {
1616
}
1717

1818
public sealed interface CoseContent {
19-
public val header: CoseCompositeHeader
19+
public val headers: CoseHeaders
2020
public val payload: ByteArray
2121
}
2222

23+
// content.sign().verify()
24+
// content.encrypt().decrypt()
25+
// content.computeMac().verify()
26+
27+
// sign: content+header + [signature headers]
28+
// sign0: content+(header+signature_header)
29+
// encrypt: content+header + [recipient_headers]
30+
31+
// coseObject(content, header, listOf(coseRecipient(header, ciphertext, recipients)))
32+
33+
2334
public sealed interface CoseSign : CoseObject {
2435
// public val header: CoseCompositeHeader
2536
// public val payload: ByteArray
2637
public val signatures: List<CoseSignature>
2738
}
2839

2940
public sealed interface CoseSignature {
30-
public val header: CoseCompositeHeader
41+
public val headers: CoseHeaders
3142
public val signature: ByteArray
3243
}
3344

3445
public sealed interface CoseSign1 : CoseObject {
35-
public val header: CoseCompositeHeader
46+
public val headers: CoseHeaders
3647

3748
// public val payload: ByteArray
3849
public val signature: ByteArray
3950
}
4051

4152
public sealed interface CoseEncrypt : CoseObject {
42-
public val header: CoseCompositeHeader
53+
public val headers: CoseHeaders
4354
public val ciphertext: ByteArray
4455
public val recipients: List<CoseRecipient>
4556
}
4657

4758
public sealed interface CoseRecipient {
48-
public val header: CoseCompositeHeader
59+
public val headers: CoseHeaders
4960
public val ciphertext: ByteArray
5061
public val recipients: List<CoseRecipient>
5162
}
5263

5364
public sealed interface CoseEncrypt0 : CoseObject {
54-
public val header: CoseCompositeHeader
65+
public val headers: CoseHeaders
5566
public val ciphertext: ByteArray
5667
}
5768

5869
public sealed interface CoseMac : CoseObject {
59-
public val header: CoseCompositeHeader
70+
public val headers: CoseHeaders
6071
public val payload: ByteArray
6172
public val tag: ByteArray
6273
public val recipients: List<CoseRecipient>
6374
}
6475

6576
public sealed interface CoseMac0 : CoseObject {
66-
public val header: CoseCompositeHeader
77+
public val headers: CoseHeaders
6778
public val payload: ByteArray
6879
public val tag: ByteArray
6980
}
7081

82+
public sealed interface CoseContentHeader
83+
public sealed interface CoseMacHeader
84+
public sealed interface CoseSignHeader
85+
public sealed interface CoseEncryptHeader
86+
7187
public sealed interface CoseHeader {
7288
public val algorithm: Algorithm
7389
public val contentType: ContentType
@@ -79,7 +95,9 @@ public sealed interface CoseHeader {
7995
public class ContentType(public val value: String)
8096
}
8197

82-
public sealed interface CoseCompositeHeader {
98+
public sealed interface CoseHeaders {
8399
public val protected: CoseHeader
84100
public val unprotected: CoseHeader
85-
}
101+
}
102+
103+
public sealed interface CoseKey

0 commit comments

Comments
 (0)