MCPcopy
hub / github.com/authlib/authlib / wrap

Method wrap

authlib/jose/rfc7518/jwe_algs.py:264–291  ·  view source on GitHub ↗
(self, enc_alg, headers, key, preset=None)

Source from the content-addressed store, hash-verified

262 return {"epk": pub_epk}
263
264 def wrap(self, enc_alg, headers, key, preset=None):
265 if self.key_size is None:
266 bit_size = enc_alg.CEK_SIZE
267 else:
268 bit_size = self.key_size
269
270 if preset and "epk" in preset:
271 epk = preset["epk"]
272 h = {}
273 else:
274 epk = self._generate_ephemeral_key(key)
275 h = self._prepare_headers(epk)
276
277 public_key = key.get_op_key("wrapKey")
278 dk = self.deliver(epk, public_key, headers, bit_size)
279
280 if self.key_size is None:
281 return {"ek": b"", "cek": dk, "header": h}
282
283 if preset and "cek" in preset:
284 preset_for_kw = {"cek": preset["cek"]}
285 else:
286 preset_for_kw = None
287
288 kek = self.aeskw.prepare_key(dk)
289 rv = self.aeskw.wrap(enc_alg, headers, kek, preset_for_kw)
290 rv["header"] = h
291 return rv
292
293 def unwrap(self, enc_alg, ek, headers, key):
294 if "epk" not in headers:

Callers

nothing calls this directly

Calls 6

_prepare_headersMethod · 0.95
deliverMethod · 0.95
get_op_keyMethod · 0.45
prepare_keyMethod · 0.45
wrapMethod · 0.45

Tested by

no test coverage detected