40
40
DEFAULT_KEY_DETAILS = common_v1 .PublicKeyDetails .PKIX_ECDSA_P384_SHA_256
41
41
42
42
43
+ class _V2EntryRequest (EntryRequest ):
44
+ @classmethod
45
+ def from_hashed_rekord (cls , req : v2 .HashedRekordRequestV002 ) -> _V2EntryRequest :
46
+ return cls ({"hashedRekordRequestV002" : req .to_dict ()})
47
+
48
+ @classmethod
49
+ def from_dsse (cls , req : v2 .DsseRequestV002 ) -> _V2EntryRequest :
50
+ return cls ({"dsseRequestV002" : req .to_dict ()})
51
+
52
+
43
53
class RekorV2Client (RekorLogSubmitter ):
44
54
"""The internal Rekor client for the v2 API
45
55
@@ -99,23 +109,21 @@ def _build_hashed_rekord_request(
99
109
"""
100
110
Construct a hashed rekord request to submit to Rekor.
101
111
"""
102
- req = v2 .CreateEntryRequest (
103
- hashed_rekord_request_v0_0_2 = v2 .HashedRekordRequestV002 (
104
- digest = hashed_input .digest ,
105
- signature = v2 .Signature (
106
- content = signature ,
107
- verifier = v2 .Verifier (
108
- x509_certificate = common_v1 .X509Certificate (
109
- raw_bytes = certificate .public_bytes (
110
- encoding = serialization .Encoding .DER
111
- )
112
- ),
113
- key_details = DEFAULT_KEY_DETAILS , # type: ignore[arg-type]
112
+ req = v2 .HashedRekordRequestV002 (
113
+ digest = hashed_input .digest ,
114
+ signature = v2 .Signature (
115
+ content = signature ,
116
+ verifier = v2 .Verifier (
117
+ x509_certificate = common_v1 .X509Certificate (
118
+ raw_bytes = certificate .public_bytes (
119
+ encoding = serialization .Encoding .DER
120
+ )
114
121
),
122
+ key_details = DEFAULT_KEY_DETAILS , # type: ignore[arg-type]
115
123
),
116
- )
124
+ ),
117
125
)
118
- return EntryRequest ( req . to_dict () )
126
+ return _V2EntryRequest . from_hashed_rekord ( req )
119
127
120
128
@classmethod
121
129
def _build_dsse_request (
@@ -124,32 +132,30 @@ def _build_dsse_request(
124
132
"""
125
133
Construct a dsse request to submit to Rekor.
126
134
"""
127
- req = v2 .CreateEntryRequest (
128
- dsse_request_v0_0_2 = v2 .DsseRequestV002 (
129
- envelope = intoto .Envelope (
130
- payload = envelope ._inner .payload ,
131
- payload_type = envelope ._inner .payload_type ,
132
- signatures = [
133
- intoto .Signature (
134
- keyid = signature .keyid ,
135
- sig = signature .sig ,
136
- )
137
- for signature in envelope ._inner .signatures
138
- ],
139
- ),
140
- verifiers = [
141
- v2 .Verifier (
142
- x509_certificate = common_v1 .X509Certificate (
143
- raw_bytes = certificate .public_bytes (
144
- encoding = serialization .Encoding .DER
145
- )
146
- ),
147
- key_details = DEFAULT_KEY_DETAILS , # type: ignore[arg-type]
135
+ req = v2 .DsseRequestV002 (
136
+ envelope = intoto .Envelope (
137
+ payload = envelope ._inner .payload ,
138
+ payload_type = envelope ._inner .payload_type ,
139
+ signatures = [
140
+ intoto .Signature (
141
+ keyid = signature .keyid ,
142
+ sig = signature .sig ,
148
143
)
144
+ for signature in envelope ._inner .signatures
149
145
],
150
- )
146
+ ),
147
+ verifiers = [
148
+ v2 .Verifier (
149
+ x509_certificate = common_v1 .X509Certificate (
150
+ raw_bytes = certificate .public_bytes (
151
+ encoding = serialization .Encoding .DER
152
+ )
153
+ ),
154
+ key_details = DEFAULT_KEY_DETAILS , # type: ignore[arg-type]
155
+ )
156
+ ],
151
157
)
152
- return EntryRequest ( req . to_dict () )
158
+ return _V2EntryRequest . from_dsse ( req )
153
159
154
160
155
161
class RekorClientError (Exception ):
0 commit comments