@reallyme/crypto 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/README.md +107 -17
  2. package/dist/aead.js +15 -8
  3. package/dist/aesKw.d.ts +7 -4
  4. package/dist/aesKw.js +69 -22
  5. package/dist/algorithms.d.ts +12 -4
  6. package/dist/algorithms.js +8 -2
  7. package/dist/argon2id.d.ts +1 -0
  8. package/dist/argon2id.js +13 -4
  9. package/dist/cryptoFacade.d.ts +33 -8
  10. package/dist/cryptoFacade.js +42 -29
  11. package/dist/hkdf.d.ts +1 -0
  12. package/dist/hkdf.js +5 -1
  13. package/dist/hmac.d.ts +3 -0
  14. package/dist/hmac.js +24 -3
  15. package/dist/hpke.d.ts +1 -2
  16. package/dist/hpke.js +33 -22
  17. package/dist/index.d.ts +9 -7
  18. package/dist/index.js +8 -6
  19. package/dist/jwk.d.ts +2 -1
  20. package/dist/jwk.js +104 -63
  21. package/dist/kmac.d.ts +11 -0
  22. package/dist/kmac.js +49 -0
  23. package/dist/mlDsa.js +22 -11
  24. package/dist/mlKem.d.ts +0 -3
  25. package/dist/mlKem.js +19 -37
  26. package/dist/operationResponse.d.ts +16 -0
  27. package/dist/operationResponse.js +46 -0
  28. package/dist/pbkdf2.d.ts +6 -8
  29. package/dist/pbkdf2.js +12 -12
  30. package/dist/proto/generated/reallyme/crypto/v1/crypto_pb.d.ts +1739 -328
  31. package/dist/proto/generated/reallyme/crypto/v1/crypto_pb.js +731 -344
  32. package/dist/proto.d.ts +6 -22
  33. package/dist/proto.js +124 -102
  34. package/dist/rsa.d.ts +2 -1
  35. package/dist/rsa.js +5 -1
  36. package/dist/slhDsa.js +21 -11
  37. package/dist/validateBytes.d.ts +6 -1
  38. package/dist/validateBytes.js +57 -3
  39. package/dist/wasm/reallyme_crypto_wasm.js +91 -134
  40. package/dist/wasm/reallyme_crypto_wasm_bg.wasm +0 -0
  41. package/dist/wasmModuleTypes.d.ts +7 -10
  42. package/dist/wasmProvider.d.ts +11 -13
  43. package/dist/wasmProvider.js +16 -19
  44. package/dist/xWing.d.ts +0 -5
  45. package/dist/xWing.js +20 -52
  46. package/package.json +15 -2
@@ -1,4 +1,4 @@
1
- import type { GenEnum, GenFile, GenMessage, GenService } from "@bufbuild/protobuf/codegenv2";
1
+ import type { GenEnum, GenFile, GenMessage } from "@bufbuild/protobuf/codegenv2";
2
2
  import type { Message } from "@bufbuild/protobuf";
3
3
  /**
4
4
  * Describes the file reallyme/crypto/v1/crypto.proto.
@@ -103,66 +103,501 @@ export type CryptoBackendError = Message<"reallyme.crypto.v1.CryptoBackendError"
103
103
  */
104
104
  export declare const CryptoBackendErrorSchema: GenMessage<CryptoBackendError>;
105
105
  /**
106
- * CryptoProtoResultEnvelope is the transport-neutral wrapper for protobuf
107
- * result lanes that need a single bytes object across FFI, RPC, storage, or
108
- * SDK boundaries. `payload` contains either a successful result message or a
109
- * CryptoError message according to `status`.
106
+ * CryptoOperationRequest is the single executable protobuf request for FFI,
107
+ * WASM, generated-SDK, CLI, and transport adapters. Native SDK callers should
108
+ * keep using typed methods. Sparse field bands keep related operations
109
+ * together without creating a second out-of-band operation namespace.
110
110
  *
111
- * @generated from message reallyme.crypto.v1.CryptoProtoResultEnvelope
111
+ * Provider-owned platform keys use the standalone platform-key messages
112
+ * below and the native Swift or Android SDK boundary. They are deliberately
113
+ * outside this Rust-executable transport because native handle identity,
114
+ * authentication, attestation, and lifetime cannot be delegated to Rust.
115
+ *
116
+ * @generated from message reallyme.crypto.v1.CryptoOperationRequest
112
117
  */
113
- export type CryptoProtoResultEnvelope = Message<"reallyme.crypto.v1.CryptoProtoResultEnvelope"> & {
114
- /**
115
- * @generated from field: reallyme.crypto.v1.CryptoProtoResultStatus status = 1;
116
- */
117
- status: CryptoProtoResultStatus;
118
+ export type CryptoOperationRequest = Message<"reallyme.crypto.v1.CryptoOperationRequest"> & {
118
119
  /**
119
- * @generated from field: bytes payload = 2;
120
+ * @generated from oneof reallyme.crypto.v1.CryptoOperationRequest.operation
120
121
  */
121
- payload: Uint8Array;
122
+ operation: {
123
+ /**
124
+ * @generated from field: reallyme.crypto.v1.CryptoHashRequest hash = 1;
125
+ */
126
+ value: CryptoHashRequest;
127
+ case: "hash";
128
+ } | {
129
+ /**
130
+ * @generated from field: reallyme.crypto.v1.CryptoAeadSealRequest aead_seal = 2;
131
+ */
132
+ value: CryptoAeadSealRequest;
133
+ case: "aeadSeal";
134
+ } | {
135
+ /**
136
+ * @generated from field: reallyme.crypto.v1.CryptoAeadOpenRequest aead_open = 3;
137
+ */
138
+ value: CryptoAeadOpenRequest;
139
+ case: "aeadOpen";
140
+ } | {
141
+ /**
142
+ * @generated from field: reallyme.crypto.v1.CryptoMacAuthenticateRequest mac_authenticate = 4;
143
+ */
144
+ value: CryptoMacAuthenticateRequest;
145
+ case: "macAuthenticate";
146
+ } | {
147
+ /**
148
+ * @generated from field: reallyme.crypto.v1.CryptoMacVerifyRequest mac_verify = 5;
149
+ */
150
+ value: CryptoMacVerifyRequest;
151
+ case: "macVerify";
152
+ } | {
153
+ /**
154
+ * @generated from field: reallyme.crypto.v1.CryptoSignatureGenerateKeyPairRequest signature_generate_key_pair = 10;
155
+ */
156
+ value: CryptoSignatureGenerateKeyPairRequest;
157
+ case: "signatureGenerateKeyPair";
158
+ } | {
159
+ /**
160
+ * @generated from field: reallyme.crypto.v1.CryptoSignatureDeriveKeyPairRequest signature_derive_key_pair = 11;
161
+ */
162
+ value: CryptoSignatureDeriveKeyPairRequest;
163
+ case: "signatureDeriveKeyPair";
164
+ } | {
165
+ /**
166
+ * @generated from field: reallyme.crypto.v1.CryptoSignatureSignRequest signature_sign = 12;
167
+ */
168
+ value: CryptoSignatureSignRequest;
169
+ case: "signatureSign";
170
+ } | {
171
+ /**
172
+ * @generated from field: reallyme.crypto.v1.CryptoSignatureVerifyRequest signature_verify = 13;
173
+ */
174
+ value: CryptoSignatureVerifyRequest;
175
+ case: "signatureVerify";
176
+ } | {
177
+ /**
178
+ * @generated from field: reallyme.crypto.v1.CryptoBip340SchnorrSignRequest bip340_schnorr_sign = 14;
179
+ */
180
+ value: CryptoBip340SchnorrSignRequest;
181
+ case: "bip340SchnorrSign";
182
+ } | {
183
+ /**
184
+ * @generated from field: reallyme.crypto.v1.CryptoRsaVerifyRequest rsa_verify = 15;
185
+ */
186
+ value: CryptoRsaVerifyRequest;
187
+ case: "rsaVerify";
188
+ } | {
189
+ /**
190
+ * @generated from field: reallyme.crypto.v1.CryptoKeyAgreementDeriveSharedSecretRequest key_agreement_derive_shared_secret = 20;
191
+ */
192
+ value: CryptoKeyAgreementDeriveSharedSecretRequest;
193
+ case: "keyAgreementDeriveSharedSecret";
194
+ } | {
195
+ /**
196
+ * @generated from field: reallyme.crypto.v1.CryptoKeyAgreementDeriveKeyPairRequest key_agreement_derive_key_pair = 21;
197
+ */
198
+ value: CryptoKeyAgreementDeriveKeyPairRequest;
199
+ case: "keyAgreementDeriveKeyPair";
200
+ } | {
201
+ /**
202
+ * @generated from field: reallyme.crypto.v1.CryptoKemGenerateKeyPairRequest kem_generate_key_pair = 30;
203
+ */
204
+ value: CryptoKemGenerateKeyPairRequest;
205
+ case: "kemGenerateKeyPair";
206
+ } | {
207
+ /**
208
+ * @generated from field: reallyme.crypto.v1.CryptoKemEncapsulateRequest kem_encapsulate = 31;
209
+ */
210
+ value: CryptoKemEncapsulateRequest;
211
+ case: "kemEncapsulate";
212
+ } | {
213
+ /**
214
+ * @generated from field: reallyme.crypto.v1.CryptoKemDecapsulateRequest kem_decapsulate = 32;
215
+ */
216
+ value: CryptoKemDecapsulateRequest;
217
+ case: "kemDecapsulate";
218
+ } | {
219
+ /**
220
+ * @generated from field: reallyme.crypto.v1.CryptoKemDeriveKeyPairRequest kem_derive_key_pair = 33;
221
+ */
222
+ value: CryptoKemDeriveKeyPairRequest;
223
+ case: "kemDeriveKeyPair";
224
+ } | {
225
+ /**
226
+ * @generated from field: reallyme.crypto.v1.CryptoHkdfDeriveRequest hkdf_derive = 40;
227
+ */
228
+ value: CryptoHkdfDeriveRequest;
229
+ case: "hkdfDerive";
230
+ } | {
231
+ /**
232
+ * @generated from field: reallyme.crypto.v1.CryptoKdfDeriveKeyRequest kdf_derive_key = 41;
233
+ */
234
+ value: CryptoKdfDeriveKeyRequest;
235
+ case: "kdfDeriveKey";
236
+ } | {
237
+ /**
238
+ * @generated from field: reallyme.crypto.v1.CryptoJwaConcatKdfSha256DeriveRequest jwa_concat_kdf_sha256_derive = 42;
239
+ */
240
+ value: CryptoJwaConcatKdfSha256DeriveRequest;
241
+ case: "jwaConcatKdfSha256Derive";
242
+ } | {
243
+ /**
244
+ * @generated from field: reallyme.crypto.v1.CryptoKmac256DeriveRequest kmac256_derive = 43;
245
+ */
246
+ value: CryptoKmac256DeriveRequest;
247
+ case: "kmac256Derive";
248
+ } | {
249
+ /**
250
+ * @generated from field: reallyme.crypto.v1.CryptoArgon2idDeriveRequest argon2id_derive = 44;
251
+ */
252
+ value: CryptoArgon2idDeriveRequest;
253
+ case: "argon2idDerive";
254
+ } | {
255
+ /**
256
+ * @generated from field: reallyme.crypto.v1.CryptoKeyWrapRequest key_wrap = 50;
257
+ */
258
+ value: CryptoKeyWrapRequest;
259
+ case: "keyWrap";
260
+ } | {
261
+ /**
262
+ * @generated from field: reallyme.crypto.v1.CryptoKeyUnwrapRequest key_unwrap = 51;
263
+ */
264
+ value: CryptoKeyUnwrapRequest;
265
+ case: "keyUnwrap";
266
+ } | {
267
+ /**
268
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeSealRequest hpke_seal = 60;
269
+ */
270
+ value: CryptoHpkeSealRequest;
271
+ case: "hpkeSeal";
272
+ } | {
273
+ /**
274
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeOpenRequest hpke_open = 61;
275
+ */
276
+ value: CryptoHpkeOpenRequest;
277
+ case: "hpkeOpen";
278
+ } | {
279
+ /**
280
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeGenerateKeyPairRequest hpke_generate_key_pair = 62;
281
+ */
282
+ value: CryptoHpkeGenerateKeyPairRequest;
283
+ case: "hpkeGenerateKeyPair";
284
+ } | {
285
+ /**
286
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeDeriveKeyPairRequest hpke_derive_key_pair = 63;
287
+ */
288
+ value: CryptoHpkeDeriveKeyPairRequest;
289
+ case: "hpkeDeriveKeyPair";
290
+ } | {
291
+ /**
292
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeSenderExportRequest hpke_sender_export = 64;
293
+ */
294
+ value: CryptoHpkeSenderExportRequest;
295
+ case: "hpkeSenderExport";
296
+ } | {
297
+ /**
298
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeReceiverExportRequest hpke_receiver_export = 65;
299
+ */
300
+ value: CryptoHpkeReceiverExportRequest;
301
+ case: "hpkeReceiverExport";
302
+ } | {
303
+ /**
304
+ * @generated from field: reallyme.crypto.v1.CryptoHpkePskSealRequest hpke_psk_seal = 66;
305
+ */
306
+ value: CryptoHpkePskSealRequest;
307
+ case: "hpkePskSeal";
308
+ } | {
309
+ /**
310
+ * @generated from field: reallyme.crypto.v1.CryptoHpkePskOpenRequest hpke_psk_open = 67;
311
+ */
312
+ value: CryptoHpkePskOpenRequest;
313
+ case: "hpkePskOpen";
314
+ } | {
315
+ case: undefined;
316
+ value?: undefined;
317
+ };
122
318
  };
123
319
  /**
124
- * Describes the message reallyme.crypto.v1.CryptoProtoResultEnvelope.
125
- * Use `create(CryptoProtoResultEnvelopeSchema)` to create a new message.
320
+ * Describes the message reallyme.crypto.v1.CryptoOperationRequest.
321
+ * Use `create(CryptoOperationRequestSchema)` to create a new message.
126
322
  */
127
- export declare const CryptoProtoResultEnvelopeSchema: GenMessage<CryptoProtoResultEnvelope>;
323
+ export declare const CryptoOperationRequestSchema: GenMessage<CryptoOperationRequest>;
128
324
  /**
129
- * CryptoServiceProcessRequest carries one operation-specific protobuf request. The
130
- * selected operation determines the concrete message type in request_payload.
325
+ * CryptoOperationResponse is the primary generated response contract for
326
+ * `CryptoOperationRequest`. Structured operation boundaries return this
327
+ * generated result-or-error shape.
131
328
  *
132
- * @generated from message reallyme.crypto.v1.CryptoServiceProcessRequest
329
+ * @generated from message reallyme.crypto.v1.CryptoOperationResponse
133
330
  */
134
- export type CryptoServiceProcessRequest = Message<"reallyme.crypto.v1.CryptoServiceProcessRequest"> & {
331
+ export type CryptoOperationResponse = Message<"reallyme.crypto.v1.CryptoOperationResponse"> & {
135
332
  /**
136
- * @generated from field: reallyme.crypto.v1.CryptoOperation operation = 1;
333
+ * @generated from oneof reallyme.crypto.v1.CryptoOperationResponse.outcome
137
334
  */
138
- operation: CryptoOperation;
335
+ outcome: {
336
+ /**
337
+ * @generated from field: reallyme.crypto.v1.CryptoOperationResult result = 1;
338
+ */
339
+ value: CryptoOperationResult;
340
+ case: "result";
341
+ } | {
342
+ /**
343
+ * @generated from field: reallyme.crypto.v1.CryptoError error = 2;
344
+ */
345
+ value: CryptoError;
346
+ case: "error";
347
+ } | {
348
+ case: undefined;
349
+ value?: undefined;
350
+ };
351
+ };
352
+ /**
353
+ * Describes the message reallyme.crypto.v1.CryptoOperationResponse.
354
+ * Use `create(CryptoOperationResponseSchema)` to create a new message.
355
+ */
356
+ export declare const CryptoOperationResponseSchema: GenMessage<CryptoOperationResponse>;
357
+ /**
358
+ * CryptoOperationResult makes each successful operation result explicit instead
359
+ * of returning opaque result bytes. Verification operations share
360
+ * `CryptoVerificationResult` so invalid signatures/MACs stay distinct from
361
+ * malformed inputs, provider failures, and backend failures.
362
+ *
363
+ * Provider-owned platform-key results remain standalone messages returned
364
+ * by their native Swift or Android SDK operations, not by this Rust
365
+ * transport result.
366
+ *
367
+ * @generated from message reallyme.crypto.v1.CryptoOperationResult
368
+ */
369
+ export type CryptoOperationResult = Message<"reallyme.crypto.v1.CryptoOperationResult"> & {
139
370
  /**
140
- * @generated from field: bytes request_payload = 2;
371
+ * @generated from oneof reallyme.crypto.v1.CryptoOperationResult.result
141
372
  */
142
- requestPayload: Uint8Array;
373
+ result: {
374
+ /**
375
+ * @generated from field: reallyme.crypto.v1.CryptoHashResult hash = 1;
376
+ */
377
+ value: CryptoHashResult;
378
+ case: "hash";
379
+ } | {
380
+ /**
381
+ * @generated from field: reallyme.crypto.v1.CryptoAeadSealResult aead_seal = 2;
382
+ */
383
+ value: CryptoAeadSealResult;
384
+ case: "aeadSeal";
385
+ } | {
386
+ /**
387
+ * @generated from field: reallyme.crypto.v1.CryptoAeadOpenResult aead_open = 3;
388
+ */
389
+ value: CryptoAeadOpenResult;
390
+ case: "aeadOpen";
391
+ } | {
392
+ /**
393
+ * @generated from field: reallyme.crypto.v1.CryptoMacAuthenticateResult mac_authenticate = 4;
394
+ */
395
+ value: CryptoMacAuthenticateResult;
396
+ case: "macAuthenticate";
397
+ } | {
398
+ /**
399
+ * @generated from field: reallyme.crypto.v1.CryptoVerificationResult mac_verify = 5;
400
+ */
401
+ value: CryptoVerificationResult;
402
+ case: "macVerify";
403
+ } | {
404
+ /**
405
+ * @generated from field: reallyme.crypto.v1.CryptoKeyPair signature_generate_key_pair = 10;
406
+ */
407
+ value: CryptoKeyPair;
408
+ case: "signatureGenerateKeyPair";
409
+ } | {
410
+ /**
411
+ * @generated from field: reallyme.crypto.v1.CryptoKeyPair signature_derive_key_pair = 11;
412
+ */
413
+ value: CryptoKeyPair;
414
+ case: "signatureDeriveKeyPair";
415
+ } | {
416
+ /**
417
+ * @generated from field: reallyme.crypto.v1.CryptoSignatureSignResult signature_sign = 12;
418
+ */
419
+ value: CryptoSignatureSignResult;
420
+ case: "signatureSign";
421
+ } | {
422
+ /**
423
+ * @generated from field: reallyme.crypto.v1.CryptoVerificationResult signature_verify = 13;
424
+ */
425
+ value: CryptoVerificationResult;
426
+ case: "signatureVerify";
427
+ } | {
428
+ /**
429
+ * @generated from field: reallyme.crypto.v1.CryptoSignatureSignResult bip340_schnorr_sign = 14;
430
+ */
431
+ value: CryptoSignatureSignResult;
432
+ case: "bip340SchnorrSign";
433
+ } | {
434
+ /**
435
+ * @generated from field: reallyme.crypto.v1.CryptoVerificationResult rsa_verify = 15;
436
+ */
437
+ value: CryptoVerificationResult;
438
+ case: "rsaVerify";
439
+ } | {
440
+ /**
441
+ * @generated from field: reallyme.crypto.v1.CryptoKeyAgreementDeriveSharedSecretResult key_agreement_derive_shared_secret = 20;
442
+ */
443
+ value: CryptoKeyAgreementDeriveSharedSecretResult;
444
+ case: "keyAgreementDeriveSharedSecret";
445
+ } | {
446
+ /**
447
+ * @generated from field: reallyme.crypto.v1.CryptoKeyPair key_agreement_derive_key_pair = 21;
448
+ */
449
+ value: CryptoKeyPair;
450
+ case: "keyAgreementDeriveKeyPair";
451
+ } | {
452
+ /**
453
+ * @generated from field: reallyme.crypto.v1.CryptoKeyPair kem_generate_key_pair = 30;
454
+ */
455
+ value: CryptoKeyPair;
456
+ case: "kemGenerateKeyPair";
457
+ } | {
458
+ /**
459
+ * @generated from field: reallyme.crypto.v1.CryptoKemEncapsulation kem_encapsulate = 31;
460
+ */
461
+ value: CryptoKemEncapsulation;
462
+ case: "kemEncapsulate";
463
+ } | {
464
+ /**
465
+ * @generated from field: reallyme.crypto.v1.CryptoKemDecapsulateResult kem_decapsulate = 32;
466
+ */
467
+ value: CryptoKemDecapsulateResult;
468
+ case: "kemDecapsulate";
469
+ } | {
470
+ /**
471
+ * @generated from field: reallyme.crypto.v1.CryptoKeyPair kem_derive_key_pair = 33;
472
+ */
473
+ value: CryptoKeyPair;
474
+ case: "kemDeriveKeyPair";
475
+ } | {
476
+ /**
477
+ * @generated from field: reallyme.crypto.v1.CryptoHkdfDeriveResult hkdf_derive = 40;
478
+ */
479
+ value: CryptoHkdfDeriveResult;
480
+ case: "hkdfDerive";
481
+ } | {
482
+ /**
483
+ * @generated from field: reallyme.crypto.v1.CryptoKdfDeriveKeyResult kdf_derive_key = 41;
484
+ */
485
+ value: CryptoKdfDeriveKeyResult;
486
+ case: "kdfDeriveKey";
487
+ } | {
488
+ /**
489
+ * @generated from field: reallyme.crypto.v1.CryptoJwaConcatKdfSha256DeriveResult jwa_concat_kdf_sha256_derive = 42;
490
+ */
491
+ value: CryptoJwaConcatKdfSha256DeriveResult;
492
+ case: "jwaConcatKdfSha256Derive";
493
+ } | {
494
+ /**
495
+ * @generated from field: reallyme.crypto.v1.CryptoKmac256DeriveResult kmac256_derive = 43;
496
+ */
497
+ value: CryptoKmac256DeriveResult;
498
+ case: "kmac256Derive";
499
+ } | {
500
+ /**
501
+ * @generated from field: reallyme.crypto.v1.CryptoKdfDeriveKeyResult argon2id_derive = 44;
502
+ */
503
+ value: CryptoKdfDeriveKeyResult;
504
+ case: "argon2idDerive";
505
+ } | {
506
+ /**
507
+ * @generated from field: reallyme.crypto.v1.CryptoKeyWrapResult key_wrap = 50;
508
+ */
509
+ value: CryptoKeyWrapResult;
510
+ case: "keyWrap";
511
+ } | {
512
+ /**
513
+ * @generated from field: reallyme.crypto.v1.CryptoKeyUnwrapResult key_unwrap = 51;
514
+ */
515
+ value: CryptoKeyUnwrapResult;
516
+ case: "keyUnwrap";
517
+ } | {
518
+ /**
519
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeSealedMessage hpke_seal = 60;
520
+ */
521
+ value: CryptoHpkeSealedMessage;
522
+ case: "hpkeSeal";
523
+ } | {
524
+ /**
525
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeOpenResult hpke_open = 61;
526
+ */
527
+ value: CryptoHpkeOpenResult;
528
+ case: "hpkeOpen";
529
+ } | {
530
+ /**
531
+ * @generated from field: reallyme.crypto.v1.CryptoKeyPair hpke_generate_key_pair = 62;
532
+ */
533
+ value: CryptoKeyPair;
534
+ case: "hpkeGenerateKeyPair";
535
+ } | {
536
+ /**
537
+ * @generated from field: reallyme.crypto.v1.CryptoKeyPair hpke_derive_key_pair = 63;
538
+ */
539
+ value: CryptoKeyPair;
540
+ case: "hpkeDeriveKeyPair";
541
+ } | {
542
+ /**
543
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeSenderExportResult hpke_sender_export = 64;
544
+ */
545
+ value: CryptoHpkeSenderExportResult;
546
+ case: "hpkeSenderExport";
547
+ } | {
548
+ /**
549
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeReceiverExportResult hpke_receiver_export = 65;
550
+ */
551
+ value: CryptoHpkeReceiverExportResult;
552
+ case: "hpkeReceiverExport";
553
+ } | {
554
+ /**
555
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeSealedMessage hpke_psk_seal = 66;
556
+ */
557
+ value: CryptoHpkeSealedMessage;
558
+ case: "hpkePskSeal";
559
+ } | {
560
+ /**
561
+ * @generated from field: reallyme.crypto.v1.CryptoHpkeOpenResult hpke_psk_open = 67;
562
+ */
563
+ value: CryptoHpkeOpenResult;
564
+ case: "hpkePskOpen";
565
+ } | {
566
+ case: undefined;
567
+ value?: undefined;
568
+ };
143
569
  };
144
570
  /**
145
- * Describes the message reallyme.crypto.v1.CryptoServiceProcessRequest.
146
- * Use `create(CryptoServiceProcessRequestSchema)` to create a new message.
571
+ * Describes the message reallyme.crypto.v1.CryptoOperationResult.
572
+ * Use `create(CryptoOperationResultSchema)` to create a new message.
147
573
  */
148
- export declare const CryptoServiceProcessRequestSchema: GenMessage<CryptoServiceProcessRequest>;
574
+ export declare const CryptoOperationResultSchema: GenMessage<CryptoOperationResult>;
149
575
  /**
150
- * CryptoServiceProcessResponse retains the result/error envelope verbatim so Connect
151
- * transports do not reinterpret crypto failures as backend exception text.
576
+ * HpkeSuiteIdentifier is the canonical 0.3.0 HPKE algorithm identifier.
577
+ * Components use their assigned two-byte HPKE registry values; implementations
578
+ * must reject unsupported combinations instead of selecting a fallback suite.
152
579
  *
153
- * @generated from message reallyme.crypto.v1.CryptoServiceProcessResponse
580
+ * @generated from message reallyme.crypto.v1.HpkeSuiteIdentifier
154
581
  */
155
- export type CryptoServiceProcessResponse = Message<"reallyme.crypto.v1.CryptoServiceProcessResponse"> & {
582
+ export type HpkeSuiteIdentifier = Message<"reallyme.crypto.v1.HpkeSuiteIdentifier"> & {
583
+ /**
584
+ * @generated from field: reallyme.crypto.v1.HpkeKemId kem = 1;
585
+ */
586
+ kem: HpkeKemId;
587
+ /**
588
+ * @generated from field: reallyme.crypto.v1.HpkeKdfId kdf = 2;
589
+ */
590
+ kdf: HpkeKdfId;
156
591
  /**
157
- * @generated from field: reallyme.crypto.v1.CryptoProtoResultEnvelope result = 1;
592
+ * @generated from field: reallyme.crypto.v1.HpkeAeadId aead = 3;
158
593
  */
159
- result?: CryptoProtoResultEnvelope | undefined;
594
+ aead: HpkeAeadId;
160
595
  };
161
596
  /**
162
- * Describes the message reallyme.crypto.v1.CryptoServiceProcessResponse.
163
- * Use `create(CryptoServiceProcessResponseSchema)` to create a new message.
597
+ * Describes the message reallyme.crypto.v1.HpkeSuiteIdentifier.
598
+ * Use `create(HpkeSuiteIdentifierSchema)` to create a new message.
164
599
  */
165
- export declare const CryptoServiceProcessResponseSchema: GenMessage<CryptoServiceProcessResponse>;
600
+ export declare const HpkeSuiteIdentifierSchema: GenMessage<HpkeSuiteIdentifier>;
166
601
  /**
167
602
  * CryptoAlgorithmIdentifier is a oneof wrapper for protocol messages that need
168
603
  * to carry a typed algorithm choice without using free-form strings.
@@ -191,12 +626,6 @@ export type CryptoAlgorithmIdentifier = Message<"reallyme.crypto.v1.CryptoAlgori
191
626
  */
192
627
  value: KemAlgorithm;
193
628
  case: "kem";
194
- } | {
195
- /**
196
- * @generated from field: reallyme.crypto.v1.HpkeSuite hpke = 4;
197
- */
198
- value: HpkeSuite;
199
- case: "hpke";
200
629
  } | {
201
630
  /**
202
631
  * @generated from field: reallyme.crypto.v1.AeadAlgorithm aead = 5;
@@ -233,6 +662,12 @@ export type CryptoAlgorithmIdentifier = Message<"reallyme.crypto.v1.CryptoAlgori
233
662
  */
234
663
  value: MulticodecKeyAlgorithm;
235
664
  case: "multicodecKey";
665
+ } | {
666
+ /**
667
+ * @generated from field: reallyme.crypto.v1.HpkeSuiteIdentifier hpke_suite = 11;
668
+ */
669
+ value: HpkeSuiteIdentifier;
670
+ case: "hpkeSuite";
236
671
  } | {
237
672
  case: undefined;
238
673
  value?: undefined;
@@ -510,6 +945,37 @@ export type CryptoKdfDeriveKeyResult = Message<"reallyme.crypto.v1.CryptoKdfDeri
510
945
  * Use `create(CryptoKdfDeriveKeyResultSchema)` to create a new message.
511
946
  */
512
947
  export declare const CryptoKdfDeriveKeyResultSchema: GenMessage<CryptoKdfDeriveKeyResult>;
948
+ /**
949
+ * @generated from message reallyme.crypto.v1.CryptoArgon2idDeriveRequest
950
+ */
951
+ export type CryptoArgon2idDeriveRequest = Message<"reallyme.crypto.v1.CryptoArgon2idDeriveRequest"> & {
952
+ /**
953
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
954
+ */
955
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
956
+ /**
957
+ * @generated from field: reallyme.crypto.v1.Argon2idKdfVersion kdf_version = 2;
958
+ */
959
+ kdfVersion: Argon2idKdfVersion;
960
+ /**
961
+ * Secret-bearing password or input secret.
962
+ *
963
+ * @generated from field: bytes secret = 3;
964
+ */
965
+ secret: Uint8Array;
966
+ /**
967
+ * Salt is commonly public but may be privacy-impacting in application
968
+ * contexts; treat it according to the protocol using this message.
969
+ *
970
+ * @generated from field: bytes salt = 4;
971
+ */
972
+ salt: Uint8Array;
973
+ };
974
+ /**
975
+ * Describes the message reallyme.crypto.v1.CryptoArgon2idDeriveRequest.
976
+ * Use `create(CryptoArgon2idDeriveRequestSchema)` to create a new message.
977
+ */
978
+ export declare const CryptoArgon2idDeriveRequestSchema: GenMessage<CryptoArgon2idDeriveRequest>;
513
979
  /**
514
980
  * @generated from message reallyme.crypto.v1.CryptoHkdfDeriveRequest
515
981
  */
@@ -621,17 +1087,76 @@ export type CryptoJwaConcatKdfSha256DeriveResult = Message<"reallyme.crypto.v1.C
621
1087
  */
622
1088
  export declare const CryptoJwaConcatKdfSha256DeriveResultSchema: GenMessage<CryptoJwaConcatKdfSha256DeriveResult>;
623
1089
  /**
624
- * @generated from message reallyme.crypto.v1.CryptoKeyWrapRequest
1090
+ * CryptoKmac256DeriveRequest exposes NIST SP 800-185 KMAC256 for protocol
1091
+ * constructions that define the exact context and customization strings.
1092
+ *
1093
+ * @generated from message reallyme.crypto.v1.CryptoKmac256DeriveRequest
625
1094
  */
626
- export type CryptoKeyWrapRequest = Message<"reallyme.crypto.v1.CryptoKeyWrapRequest"> & {
1095
+ export type CryptoKmac256DeriveRequest = Message<"reallyme.crypto.v1.CryptoKmac256DeriveRequest"> & {
627
1096
  /**
628
1097
  * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
629
1098
  */
630
1099
  algorithm?: CryptoAlgorithmIdentifier | undefined;
631
1100
  /**
632
- * Secret-bearing key-encryption key.
1101
+ * Secret-bearing KMAC key. KMAC256 requires at least 32 octets.
633
1102
  *
634
- * @generated from field: bytes wrapping_key = 2;
1103
+ * @generated from field: bytes key = 2;
1104
+ */
1105
+ key: Uint8Array;
1106
+ /**
1107
+ * Potentially privacy-bearing protocol context; clear decoded owned copies.
1108
+ *
1109
+ * @generated from field: bytes context = 3;
1110
+ */
1111
+ context: Uint8Array;
1112
+ /**
1113
+ * Potentially privacy-bearing domain separation; clear decoded owned copies.
1114
+ *
1115
+ * @generated from field: bytes customization = 4;
1116
+ */
1117
+ customization: Uint8Array;
1118
+ /**
1119
+ * @generated from field: uint32 output_length = 5;
1120
+ */
1121
+ outputLength: number;
1122
+ };
1123
+ /**
1124
+ * Describes the message reallyme.crypto.v1.CryptoKmac256DeriveRequest.
1125
+ * Use `create(CryptoKmac256DeriveRequestSchema)` to create a new message.
1126
+ */
1127
+ export declare const CryptoKmac256DeriveRequestSchema: GenMessage<CryptoKmac256DeriveRequest>;
1128
+ /**
1129
+ * @generated from message reallyme.crypto.v1.CryptoKmac256DeriveResult
1130
+ */
1131
+ export type CryptoKmac256DeriveResult = Message<"reallyme.crypto.v1.CryptoKmac256DeriveResult"> & {
1132
+ /**
1133
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1134
+ */
1135
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1136
+ /**
1137
+ * Secret-bearing derived key material.
1138
+ *
1139
+ * @generated from field: bytes derived_key = 2;
1140
+ */
1141
+ derivedKey: Uint8Array;
1142
+ };
1143
+ /**
1144
+ * Describes the message reallyme.crypto.v1.CryptoKmac256DeriveResult.
1145
+ * Use `create(CryptoKmac256DeriveResultSchema)` to create a new message.
1146
+ */
1147
+ export declare const CryptoKmac256DeriveResultSchema: GenMessage<CryptoKmac256DeriveResult>;
1148
+ /**
1149
+ * @generated from message reallyme.crypto.v1.CryptoKeyWrapRequest
1150
+ */
1151
+ export type CryptoKeyWrapRequest = Message<"reallyme.crypto.v1.CryptoKeyWrapRequest"> & {
1152
+ /**
1153
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1154
+ */
1155
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1156
+ /**
1157
+ * Secret-bearing key-encryption key.
1158
+ *
1159
+ * @generated from field: bytes wrapping_key = 2;
635
1160
  */
636
1161
  wrappingKey: Uint8Array;
637
1162
  /**
@@ -944,6 +1469,26 @@ export type CryptoKemGenerateKeyPairRequest = Message<"reallyme.crypto.v1.Crypto
944
1469
  * Use `create(CryptoKemGenerateKeyPairRequestSchema)` to create a new message.
945
1470
  */
946
1471
  export declare const CryptoKemGenerateKeyPairRequestSchema: GenMessage<CryptoKemGenerateKeyPairRequest>;
1472
+ /**
1473
+ * @generated from message reallyme.crypto.v1.CryptoKemDeriveKeyPairRequest
1474
+ */
1475
+ export type CryptoKemDeriveKeyPairRequest = Message<"reallyme.crypto.v1.CryptoKemDeriveKeyPairRequest"> & {
1476
+ /**
1477
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1478
+ */
1479
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1480
+ /**
1481
+ * Secret-bearing seed or private key input, depending on the algorithm.
1482
+ *
1483
+ * @generated from field: bytes secret_key = 2;
1484
+ */
1485
+ secretKey: Uint8Array;
1486
+ };
1487
+ /**
1488
+ * Describes the message reallyme.crypto.v1.CryptoKemDeriveKeyPairRequest.
1489
+ * Use `create(CryptoKemDeriveKeyPairRequestSchema)` to create a new message.
1490
+ */
1491
+ export declare const CryptoKemDeriveKeyPairRequestSchema: GenMessage<CryptoKemDeriveKeyPairRequest>;
947
1492
  /**
948
1493
  * @generated from message reallyme.crypto.v1.CryptoKemEncapsulateRequest
949
1494
  */
@@ -1094,6 +1639,241 @@ export type CryptoHpkeOpenResult = Message<"reallyme.crypto.v1.CryptoHpkeOpenRes
1094
1639
  * Use `create(CryptoHpkeOpenResultSchema)` to create a new message.
1095
1640
  */
1096
1641
  export declare const CryptoHpkeOpenResultSchema: GenMessage<CryptoHpkeOpenResult>;
1642
+ /**
1643
+ * @generated from message reallyme.crypto.v1.CryptoHpkeGenerateKeyPairRequest
1644
+ */
1645
+ export type CryptoHpkeGenerateKeyPairRequest = Message<"reallyme.crypto.v1.CryptoHpkeGenerateKeyPairRequest"> & {
1646
+ /**
1647
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1648
+ */
1649
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1650
+ };
1651
+ /**
1652
+ * Describes the message reallyme.crypto.v1.CryptoHpkeGenerateKeyPairRequest.
1653
+ * Use `create(CryptoHpkeGenerateKeyPairRequestSchema)` to create a new message.
1654
+ */
1655
+ export declare const CryptoHpkeGenerateKeyPairRequestSchema: GenMessage<CryptoHpkeGenerateKeyPairRequest>;
1656
+ /**
1657
+ * @generated from message reallyme.crypto.v1.CryptoHpkeDeriveKeyPairRequest
1658
+ */
1659
+ export type CryptoHpkeDeriveKeyPairRequest = Message<"reallyme.crypto.v1.CryptoHpkeDeriveKeyPairRequest"> & {
1660
+ /**
1661
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1662
+ */
1663
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1664
+ /**
1665
+ * Secret-bearing input keying material. The selected KEM defines its exact
1666
+ * accepted length; callers must supply high-entropy bytes.
1667
+ *
1668
+ * @generated from field: bytes input_key_material = 2;
1669
+ */
1670
+ inputKeyMaterial: Uint8Array;
1671
+ };
1672
+ /**
1673
+ * Describes the message reallyme.crypto.v1.CryptoHpkeDeriveKeyPairRequest.
1674
+ * Use `create(CryptoHpkeDeriveKeyPairRequestSchema)` to create a new message.
1675
+ */
1676
+ export declare const CryptoHpkeDeriveKeyPairRequestSchema: GenMessage<CryptoHpkeDeriveKeyPairRequest>;
1677
+ /**
1678
+ * @generated from message reallyme.crypto.v1.CryptoHpkeSenderExportRequest
1679
+ */
1680
+ export type CryptoHpkeSenderExportRequest = Message<"reallyme.crypto.v1.CryptoHpkeSenderExportRequest"> & {
1681
+ /**
1682
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1683
+ */
1684
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1685
+ /**
1686
+ * @generated from field: bytes recipient_public_key = 2;
1687
+ */
1688
+ recipientPublicKey: Uint8Array;
1689
+ /**
1690
+ * @generated from field: bytes info = 3;
1691
+ */
1692
+ info: Uint8Array;
1693
+ /**
1694
+ * @generated from field: bytes exporter_context = 4;
1695
+ */
1696
+ exporterContext: Uint8Array;
1697
+ /**
1698
+ * @generated from field: uint32 output_length = 5;
1699
+ */
1700
+ outputLength: number;
1701
+ };
1702
+ /**
1703
+ * Describes the message reallyme.crypto.v1.CryptoHpkeSenderExportRequest.
1704
+ * Use `create(CryptoHpkeSenderExportRequestSchema)` to create a new message.
1705
+ */
1706
+ export declare const CryptoHpkeSenderExportRequestSchema: GenMessage<CryptoHpkeSenderExportRequest>;
1707
+ /**
1708
+ * @generated from message reallyme.crypto.v1.CryptoHpkeReceiverExportRequest
1709
+ */
1710
+ export type CryptoHpkeReceiverExportRequest = Message<"reallyme.crypto.v1.CryptoHpkeReceiverExportRequest"> & {
1711
+ /**
1712
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1713
+ */
1714
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1715
+ /**
1716
+ * Secret-bearing HPKE recipient private key material.
1717
+ *
1718
+ * @generated from field: bytes recipient_secret_key = 2;
1719
+ */
1720
+ recipientSecretKey: Uint8Array;
1721
+ /**
1722
+ * @generated from field: bytes encapsulated_key = 3;
1723
+ */
1724
+ encapsulatedKey: Uint8Array;
1725
+ /**
1726
+ * @generated from field: bytes info = 4;
1727
+ */
1728
+ info: Uint8Array;
1729
+ /**
1730
+ * @generated from field: bytes exporter_context = 5;
1731
+ */
1732
+ exporterContext: Uint8Array;
1733
+ /**
1734
+ * @generated from field: uint32 output_length = 6;
1735
+ */
1736
+ outputLength: number;
1737
+ };
1738
+ /**
1739
+ * Describes the message reallyme.crypto.v1.CryptoHpkeReceiverExportRequest.
1740
+ * Use `create(CryptoHpkeReceiverExportRequestSchema)` to create a new message.
1741
+ */
1742
+ export declare const CryptoHpkeReceiverExportRequestSchema: GenMessage<CryptoHpkeReceiverExportRequest>;
1743
+ /**
1744
+ * @generated from message reallyme.crypto.v1.CryptoHpkeSenderExportResult
1745
+ */
1746
+ export type CryptoHpkeSenderExportResult = Message<"reallyme.crypto.v1.CryptoHpkeSenderExportResult"> & {
1747
+ /**
1748
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1749
+ */
1750
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1751
+ /**
1752
+ * @generated from field: bytes encapsulated_key = 2;
1753
+ */
1754
+ encapsulatedKey: Uint8Array;
1755
+ /**
1756
+ * Secret-bearing HPKE exporter output.
1757
+ *
1758
+ * @generated from field: bytes exporter_secret = 3;
1759
+ */
1760
+ exporterSecret: Uint8Array;
1761
+ };
1762
+ /**
1763
+ * Describes the message reallyme.crypto.v1.CryptoHpkeSenderExportResult.
1764
+ * Use `create(CryptoHpkeSenderExportResultSchema)` to create a new message.
1765
+ */
1766
+ export declare const CryptoHpkeSenderExportResultSchema: GenMessage<CryptoHpkeSenderExportResult>;
1767
+ /**
1768
+ * @generated from message reallyme.crypto.v1.CryptoHpkeReceiverExportResult
1769
+ */
1770
+ export type CryptoHpkeReceiverExportResult = Message<"reallyme.crypto.v1.CryptoHpkeReceiverExportResult"> & {
1771
+ /**
1772
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1773
+ */
1774
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1775
+ /**
1776
+ * Secret-bearing HPKE exporter output.
1777
+ *
1778
+ * @generated from field: bytes exporter_secret = 2;
1779
+ */
1780
+ exporterSecret: Uint8Array;
1781
+ };
1782
+ /**
1783
+ * Describes the message reallyme.crypto.v1.CryptoHpkeReceiverExportResult.
1784
+ * Use `create(CryptoHpkeReceiverExportResultSchema)` to create a new message.
1785
+ */
1786
+ export declare const CryptoHpkeReceiverExportResultSchema: GenMessage<CryptoHpkeReceiverExportResult>;
1787
+ /**
1788
+ * @generated from message reallyme.crypto.v1.CryptoHpkePskSealRequest
1789
+ */
1790
+ export type CryptoHpkePskSealRequest = Message<"reallyme.crypto.v1.CryptoHpkePskSealRequest"> & {
1791
+ /**
1792
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1793
+ */
1794
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1795
+ /**
1796
+ * @generated from field: bytes recipient_public_key = 2;
1797
+ */
1798
+ recipientPublicKey: Uint8Array;
1799
+ /**
1800
+ * @generated from field: bytes info = 3;
1801
+ */
1802
+ info: Uint8Array;
1803
+ /**
1804
+ * @generated from field: bytes aad = 4;
1805
+ */
1806
+ aad: Uint8Array;
1807
+ /**
1808
+ * Plaintext may contain secret or PII-bearing application data.
1809
+ *
1810
+ * @generated from field: bytes plaintext = 5;
1811
+ */
1812
+ plaintext: Uint8Array;
1813
+ /**
1814
+ * Secret-bearing, high-entropy pre-shared key. Passwords are not valid HPKE
1815
+ * PSKs and must not be passed through this field.
1816
+ *
1817
+ * @generated from field: bytes psk = 6;
1818
+ */
1819
+ psk: Uint8Array;
1820
+ /**
1821
+ * @generated from field: bytes psk_id = 7;
1822
+ */
1823
+ pskId: Uint8Array;
1824
+ };
1825
+ /**
1826
+ * Describes the message reallyme.crypto.v1.CryptoHpkePskSealRequest.
1827
+ * Use `create(CryptoHpkePskSealRequestSchema)` to create a new message.
1828
+ */
1829
+ export declare const CryptoHpkePskSealRequestSchema: GenMessage<CryptoHpkePskSealRequest>;
1830
+ /**
1831
+ * @generated from message reallyme.crypto.v1.CryptoHpkePskOpenRequest
1832
+ */
1833
+ export type CryptoHpkePskOpenRequest = Message<"reallyme.crypto.v1.CryptoHpkePskOpenRequest"> & {
1834
+ /**
1835
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1836
+ */
1837
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1838
+ /**
1839
+ * Secret-bearing HPKE recipient private key material.
1840
+ *
1841
+ * @generated from field: bytes recipient_secret_key = 2;
1842
+ */
1843
+ recipientSecretKey: Uint8Array;
1844
+ /**
1845
+ * @generated from field: bytes encapsulated_key = 3;
1846
+ */
1847
+ encapsulatedKey: Uint8Array;
1848
+ /**
1849
+ * @generated from field: bytes info = 4;
1850
+ */
1851
+ info: Uint8Array;
1852
+ /**
1853
+ * @generated from field: bytes aad = 5;
1854
+ */
1855
+ aad: Uint8Array;
1856
+ /**
1857
+ * @generated from field: bytes ciphertext = 6;
1858
+ */
1859
+ ciphertext: Uint8Array;
1860
+ /**
1861
+ * Secret-bearing, high-entropy pre-shared key. Passwords are not valid HPKE
1862
+ * PSKs and must not be passed through this field.
1863
+ *
1864
+ * @generated from field: bytes psk = 7;
1865
+ */
1866
+ psk: Uint8Array;
1867
+ /**
1868
+ * @generated from field: bytes psk_id = 8;
1869
+ */
1870
+ pskId: Uint8Array;
1871
+ };
1872
+ /**
1873
+ * Describes the message reallyme.crypto.v1.CryptoHpkePskOpenRequest.
1874
+ * Use `create(CryptoHpkePskOpenRequestSchema)` to create a new message.
1875
+ */
1876
+ export declare const CryptoHpkePskOpenRequestSchema: GenMessage<CryptoHpkePskOpenRequest>;
1097
1877
  /**
1098
1878
  * CryptoKeyPair is the protobuf boundary envelope for generated or derived
1099
1879
  * keypairs. Secret-key bytes are included only for APIs whose public facade
@@ -1177,255 +1957,536 @@ export type CryptoHpkeSealedMessage = Message<"reallyme.crypto.v1.CryptoHpkeSeal
1177
1957
  */
1178
1958
  export declare const CryptoHpkeSealedMessageSchema: GenMessage<CryptoHpkeSealedMessage>;
1179
1959
  /**
1180
- * CryptoVerificationResult is for protocol layers that need a stable,
1181
- * serializable verification status. Ordinary facade calls should continue to
1182
- * fail closed with typed errors.
1960
+ * @generated from message reallyme.crypto.v1.ApplePlatformKeyPolicy
1961
+ */
1962
+ export type ApplePlatformKeyPolicy = Message<"reallyme.crypto.v1.ApplePlatformKeyPolicy"> & {
1963
+ /**
1964
+ * @generated from field: reallyme.crypto.v1.AppleSecureEnclaveAccessPolicy access_policy = 1;
1965
+ */
1966
+ accessPolicy: AppleSecureEnclaveAccessPolicy;
1967
+ /**
1968
+ * @generated from field: reallyme.crypto.v1.AppleKeychainAccessibility accessibility = 2;
1969
+ */
1970
+ accessibility: AppleKeychainAccessibility;
1971
+ };
1972
+ /**
1973
+ * Describes the message reallyme.crypto.v1.ApplePlatformKeyPolicy.
1974
+ * Use `create(ApplePlatformKeyPolicySchema)` to create a new message.
1975
+ */
1976
+ export declare const ApplePlatformKeyPolicySchema: GenMessage<ApplePlatformKeyPolicy>;
1977
+ /**
1978
+ * @generated from message reallyme.crypto.v1.AndroidPlatformKeyPolicy
1979
+ */
1980
+ export type AndroidPlatformKeyPolicy = Message<"reallyme.crypto.v1.AndroidPlatformKeyPolicy"> & {
1981
+ /**
1982
+ * When present, this value must match
1983
+ * CryptoPlatformKeyGenerateRequest.requested_security_level.
1984
+ *
1985
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel requested_security_level = 1;
1986
+ */
1987
+ requestedSecurityLevel: PlatformKeySecurityLevel;
1988
+ /**
1989
+ * @generated from field: bool user_authentication_required = 2;
1990
+ */
1991
+ userAuthenticationRequired: boolean;
1992
+ /**
1993
+ * @generated from field: uint32 user_authentication_timeout_seconds = 3;
1994
+ */
1995
+ userAuthenticationTimeoutSeconds: number;
1996
+ /**
1997
+ * @generated from field: bool allow_biometric_strong = 4;
1998
+ */
1999
+ allowBiometricStrong: boolean;
2000
+ /**
2001
+ * @generated from field: bool allow_device_credential = 5;
2002
+ */
2003
+ allowDeviceCredential: boolean;
2004
+ /**
2005
+ * @generated from field: bool invalidated_by_biometric_enrollment = 6;
2006
+ */
2007
+ invalidatedByBiometricEnrollment: boolean;
2008
+ /**
2009
+ * @generated from field: bool user_confirmation_required = 7;
2010
+ */
2011
+ userConfirmationRequired: boolean;
2012
+ /**
2013
+ * @generated from field: bool unlocked_device_required = 8;
2014
+ */
2015
+ unlockedDeviceRequired: boolean;
2016
+ /**
2017
+ * @generated from field: bytes attestation_challenge = 9;
2018
+ */
2019
+ attestationChallenge: Uint8Array;
2020
+ };
2021
+ /**
2022
+ * Describes the message reallyme.crypto.v1.AndroidPlatformKeyPolicy.
2023
+ * Use `create(AndroidPlatformKeyPolicySchema)` to create a new message.
2024
+ */
2025
+ export declare const AndroidPlatformKeyPolicySchema: GenMessage<AndroidPlatformKeyPolicy>;
2026
+ /**
2027
+ * @generated from message reallyme.crypto.v1.PlatformKeyPolicy
2028
+ */
2029
+ export type PlatformKeyPolicy = Message<"reallyme.crypto.v1.PlatformKeyPolicy"> & {
2030
+ /**
2031
+ * @generated from oneof reallyme.crypto.v1.PlatformKeyPolicy.policy
2032
+ */
2033
+ policy: {
2034
+ /**
2035
+ * @generated from field: reallyme.crypto.v1.ApplePlatformKeyPolicy apple = 1;
2036
+ */
2037
+ value: ApplePlatformKeyPolicy;
2038
+ case: "apple";
2039
+ } | {
2040
+ /**
2041
+ * @generated from field: reallyme.crypto.v1.AndroidPlatformKeyPolicy android = 2;
2042
+ */
2043
+ value: AndroidPlatformKeyPolicy;
2044
+ case: "android";
2045
+ } | {
2046
+ case: undefined;
2047
+ value?: undefined;
2048
+ };
2049
+ };
2050
+ /**
2051
+ * Describes the message reallyme.crypto.v1.PlatformKeyPolicy.
2052
+ * Use `create(PlatformKeyPolicySchema)` to create a new message.
2053
+ */
2054
+ export declare const PlatformKeyPolicySchema: GenMessage<PlatformKeyPolicy>;
2055
+ /**
2056
+ * CryptoPlatformPrivateKeyHandle is an opaque, privacy-sensitive reference to
2057
+ * platform-resident private key material. It is not interchangeable with
2058
+ * raw-byte `secret_key` fields and must never contain exportable private key
2059
+ * material.
1183
2060
  *
1184
- * @generated from message reallyme.crypto.v1.CryptoVerificationResult
2061
+ * @generated from message reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle
1185
2062
  */
1186
- export type CryptoVerificationResult = Message<"reallyme.crypto.v1.CryptoVerificationResult"> & {
2063
+ export type CryptoPlatformPrivateKeyHandle = Message<"reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle"> & {
1187
2064
  /**
1188
- * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
2065
+ * @generated from field: reallyme.crypto.v1.PlatformKeyProvider provider = 1;
2066
+ */
2067
+ provider: PlatformKeyProvider;
2068
+ /**
2069
+ * @generated from field: reallyme.crypto.v1.PlatformKeyPurpose purpose = 2;
2070
+ */
2071
+ purpose: PlatformKeyPurpose;
2072
+ /**
2073
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 3;
1189
2074
  */
1190
2075
  algorithm?: CryptoAlgorithmIdentifier | undefined;
1191
2076
  /**
1192
- * @generated from field: reallyme.crypto.v1.CryptoVerificationStatus status = 2;
2077
+ * @generated from field: bytes opaque_handle = 4;
1193
2078
  */
1194
- status: CryptoVerificationStatus;
2079
+ opaqueHandle: Uint8Array;
1195
2080
  /**
1196
- * @generated from field: reallyme.crypto.v1.CryptoError error = 3;
2081
+ * @generated from field: bytes public_key = 5;
1197
2082
  */
1198
- error?: CryptoError | undefined;
2083
+ publicKey: Uint8Array;
2084
+ /**
2085
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel actual_security_level = 6;
2086
+ */
2087
+ actualSecurityLevel: PlatformKeySecurityLevel;
2088
+ /**
2089
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel requested_security_level = 7;
2090
+ */
2091
+ requestedSecurityLevel: PlatformKeySecurityLevel;
1199
2092
  };
1200
2093
  /**
1201
- * Describes the message reallyme.crypto.v1.CryptoVerificationResult.
1202
- * Use `create(CryptoVerificationResultSchema)` to create a new message.
2094
+ * Describes the message reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle.
2095
+ * Use `create(CryptoPlatformPrivateKeyHandleSchema)` to create a new message.
1203
2096
  */
1204
- export declare const CryptoVerificationResultSchema: GenMessage<CryptoVerificationResult>;
2097
+ export declare const CryptoPlatformPrivateKeyHandleSchema: GenMessage<CryptoPlatformPrivateKeyHandle>;
1205
2098
  /**
1206
- * CryptoProviderCapability describes the package/provider posture for one
1207
- * algorithm in one published lane. Provider names are non-secret identifiers
1208
- * such as "CryptoKit", "BouncyCastle", or "ReallyMe Rust WASM".
2099
+ * Platform-key operations in 0.3.0 are limited to P-256 ECDSA signing and
2100
+ * P-256 ECDH. Providers must reject an algorithm/purpose mismatch and must
2101
+ * report the actual security level rather than treating this request as
2102
+ * evidence that hardware residency was obtained.
1209
2103
  *
1210
- * @generated from message reallyme.crypto.v1.CryptoProviderCapability
2104
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyGenerateRequest
1211
2105
  */
1212
- export type CryptoProviderCapability = Message<"reallyme.crypto.v1.CryptoProviderCapability"> & {
2106
+ export type CryptoPlatformKeyGenerateRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyGenerateRequest"> & {
1213
2107
  /**
1214
- * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
2108
+ * @generated from field: reallyme.crypto.v1.PlatformKeyProvider provider = 1;
2109
+ */
2110
+ provider: PlatformKeyProvider;
2111
+ /**
2112
+ * @generated from field: reallyme.crypto.v1.PlatformKeyPurpose purpose = 2;
2113
+ */
2114
+ purpose: PlatformKeyPurpose;
2115
+ /**
2116
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 3;
1215
2117
  */
1216
2118
  algorithm?: CryptoAlgorithmIdentifier | undefined;
1217
2119
  /**
1218
- * @generated from field: reallyme.crypto.v1.CryptoAlgorithmFamily family = 2;
2120
+ * @generated from field: bytes application_tag = 4;
1219
2121
  */
1220
- family: CryptoAlgorithmFamily;
2122
+ applicationTag: Uint8Array;
1221
2123
  /**
1222
- * @generated from field: reallyme.crypto.v1.CryptoProviderSupportStatus status = 3;
2124
+ * @generated from field: reallyme.crypto.v1.PlatformKeyPolicy policy = 5;
1223
2125
  */
1224
- status: CryptoProviderSupportStatus;
2126
+ policy?: PlatformKeyPolicy | undefined;
1225
2127
  /**
1226
- * @generated from field: repeated string provider_names = 4;
2128
+ * @generated from field: bool overwrite_existing = 6;
1227
2129
  */
1228
- providerNames: string[];
2130
+ overwriteExisting: boolean;
1229
2131
  /**
1230
- * @generated from field: bool uses_rust = 5;
2132
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel requested_security_level = 7;
1231
2133
  */
1232
- usesRust: boolean;
2134
+ requestedSecurityLevel: PlatformKeySecurityLevel;
1233
2135
  };
1234
2136
  /**
1235
- * Describes the message reallyme.crypto.v1.CryptoProviderCapability.
1236
- * Use `create(CryptoProviderCapabilitySchema)` to create a new message.
2137
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyGenerateRequest.
2138
+ * Use `create(CryptoPlatformKeyGenerateRequestSchema)` to create a new message.
1237
2139
  */
1238
- export declare const CryptoProviderCapabilitySchema: GenMessage<CryptoProviderCapability>;
2140
+ export declare const CryptoPlatformKeyGenerateRequestSchema: GenMessage<CryptoPlatformKeyGenerateRequest>;
1239
2141
  /**
1240
- * @generated from message reallyme.crypto.v1.CryptoProviderCapabilitySet
2142
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyGenerateResult
1241
2143
  */
1242
- export type CryptoProviderCapabilitySet = Message<"reallyme.crypto.v1.CryptoProviderCapabilitySet"> & {
2144
+ export type CryptoPlatformKeyGenerateResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyGenerateResult"> & {
1243
2145
  /**
1244
- * @generated from field: repeated reallyme.crypto.v1.CryptoProviderCapability capabilities = 1;
2146
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1245
2147
  */
1246
- capabilities: CryptoProviderCapability[];
2148
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
1247
2149
  };
1248
2150
  /**
1249
- * Describes the message reallyme.crypto.v1.CryptoProviderCapabilitySet.
1250
- * Use `create(CryptoProviderCapabilitySetSchema)` to create a new message.
2151
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyGenerateResult.
2152
+ * Use `create(CryptoPlatformKeyGenerateResultSchema)` to create a new message.
1251
2153
  */
1252
- export declare const CryptoProviderCapabilitySetSchema: GenMessage<CryptoProviderCapabilitySet>;
2154
+ export declare const CryptoPlatformKeyGenerateResultSchema: GenMessage<CryptoPlatformKeyGenerateResult>;
1253
2155
  /**
1254
- * JsonWebKey carries a public JWK document at API/storage boundaries. The JSON
1255
- * member is the canonical JCS form used by the package vectors; private key
1256
- * material is intentionally out of scope for this message.
1257
- *
1258
- * @generated from message reallyme.crypto.v1.JsonWebKey
2156
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyRequest
1259
2157
  */
1260
- export type JsonWebKey = Message<"reallyme.crypto.v1.JsonWebKey"> & {
2158
+ export type CryptoPlatformKeyGetPublicKeyRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyRequest"> & {
1261
2159
  /**
1262
- * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
2160
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1263
2161
  */
1264
- algorithm?: CryptoAlgorithmIdentifier | undefined;
2162
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
2163
+ };
2164
+ /**
2165
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyRequest.
2166
+ * Use `create(CryptoPlatformKeyGetPublicKeyRequestSchema)` to create a new message.
2167
+ */
2168
+ export declare const CryptoPlatformKeyGetPublicKeyRequestSchema: GenMessage<CryptoPlatformKeyGetPublicKeyRequest>;
2169
+ /**
2170
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyResult
2171
+ */
2172
+ export type CryptoPlatformKeyGetPublicKeyResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyResult"> & {
2173
+ /**
2174
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
2175
+ */
2176
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
1265
2177
  /**
1266
2178
  * @generated from field: bytes public_key = 2;
1267
2179
  */
1268
2180
  publicKey: Uint8Array;
2181
+ };
2182
+ /**
2183
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyResult.
2184
+ * Use `create(CryptoPlatformKeyGetPublicKeyResultSchema)` to create a new message.
2185
+ */
2186
+ export declare const CryptoPlatformKeyGetPublicKeyResultSchema: GenMessage<CryptoPlatformKeyGetPublicKeyResult>;
2187
+ /**
2188
+ * @generated from message reallyme.crypto.v1.CryptoPlatformSignatureSignRequest
2189
+ */
2190
+ export type CryptoPlatformSignatureSignRequest = Message<"reallyme.crypto.v1.CryptoPlatformSignatureSignRequest"> & {
1269
2191
  /**
1270
- * @generated from field: bytes canonical_jcs = 3;
2192
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1271
2193
  */
1272
- canonicalJcs: Uint8Array;
2194
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
2195
+ /**
2196
+ * @generated from field: bytes message = 2;
2197
+ */
2198
+ message: Uint8Array;
2199
+ /**
2200
+ * @generated from field: string authentication_prompt = 3;
2201
+ */
2202
+ authenticationPrompt: string;
1273
2203
  };
1274
2204
  /**
1275
- * Describes the message reallyme.crypto.v1.JsonWebKey.
1276
- * Use `create(JsonWebKeySchema)` to create a new message.
2205
+ * Describes the message reallyme.crypto.v1.CryptoPlatformSignatureSignRequest.
2206
+ * Use `create(CryptoPlatformSignatureSignRequestSchema)` to create a new message.
1277
2207
  */
1278
- export declare const JsonWebKeySchema: GenMessage<JsonWebKey>;
2208
+ export declare const CryptoPlatformSignatureSignRequestSchema: GenMessage<CryptoPlatformSignatureSignRequest>;
1279
2209
  /**
1280
- * JsonWebKeySet is the protobuf boundary equivalent of the JSON { "keys": [] }
1281
- * JWKS wrapper. It stores parsed public-key records rather than arbitrary JSON.
1282
- *
1283
- * @generated from message reallyme.crypto.v1.JsonWebKeySet
2210
+ * @generated from message reallyme.crypto.v1.CryptoPlatformSignatureSignResult
1284
2211
  */
1285
- export type JsonWebKeySet = Message<"reallyme.crypto.v1.JsonWebKeySet"> & {
2212
+ export type CryptoPlatformSignatureSignResult = Message<"reallyme.crypto.v1.CryptoPlatformSignatureSignResult"> & {
1286
2213
  /**
1287
- * @generated from field: repeated reallyme.crypto.v1.JsonWebKey keys = 1;
2214
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1288
2215
  */
1289
- keys: JsonWebKey[];
2216
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
2217
+ /**
2218
+ * @generated from field: bytes signature = 2;
2219
+ */
2220
+ signature: Uint8Array;
1290
2221
  };
1291
2222
  /**
1292
- * Describes the message reallyme.crypto.v1.JsonWebKeySet.
1293
- * Use `create(JsonWebKeySetSchema)` to create a new message.
2223
+ * Describes the message reallyme.crypto.v1.CryptoPlatformSignatureSignResult.
2224
+ * Use `create(CryptoPlatformSignatureSignResultSchema)` to create a new message.
1294
2225
  */
1295
- export declare const JsonWebKeySetSchema: GenMessage<JsonWebKeySet>;
2226
+ export declare const CryptoPlatformSignatureSignResultSchema: GenMessage<CryptoPlatformSignatureSignResult>;
1296
2227
  /**
1297
- * CryptoProtoResultStatus marks whether a result-envelope payload contains an
1298
- * operation-specific result protobuf or a structured CryptoError protobuf.
1299
- *
1300
- * @generated from enum reallyme.crypto.v1.CryptoProtoResultStatus
2228
+ * @generated from message reallyme.crypto.v1.CryptoPlatformSignatureVerifyRequest
1301
2229
  */
1302
- export declare enum CryptoProtoResultStatus {
2230
+ export type CryptoPlatformSignatureVerifyRequest = Message<"reallyme.crypto.v1.CryptoPlatformSignatureVerifyRequest"> & {
1303
2231
  /**
1304
- * @generated from enum value: CRYPTO_PROTO_RESULT_STATUS_UNSPECIFIED = 0;
2232
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1305
2233
  */
1306
- UNSPECIFIED = 0,
2234
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1307
2235
  /**
1308
- * @generated from enum value: CRYPTO_PROTO_RESULT_STATUS_RESULT = 1;
2236
+ * @generated from field: bytes signature = 2;
1309
2237
  */
1310
- RESULT = 1,
2238
+ signature: Uint8Array;
1311
2239
  /**
1312
- * @generated from enum value: CRYPTO_PROTO_RESULT_STATUS_CRYPTO_ERROR = 2;
2240
+ * @generated from field: bytes message = 3;
1313
2241
  */
1314
- CRYPTO_ERROR = 2
1315
- }
2242
+ message: Uint8Array;
2243
+ /**
2244
+ * @generated from field: bytes public_key = 4;
2245
+ */
2246
+ publicKey: Uint8Array;
2247
+ };
1316
2248
  /**
1317
- * Describes the enum reallyme.crypto.v1.CryptoProtoResultStatus.
2249
+ * Describes the message reallyme.crypto.v1.CryptoPlatformSignatureVerifyRequest.
2250
+ * Use `create(CryptoPlatformSignatureVerifyRequestSchema)` to create a new message.
1318
2251
  */
1319
- export declare const CryptoProtoResultStatusSchema: GenEnum<CryptoProtoResultStatus>;
2252
+ export declare const CryptoPlatformSignatureVerifyRequestSchema: GenMessage<CryptoPlatformSignatureVerifyRequest>;
1320
2253
  /**
1321
- * CryptoOperation is the stable dispatch identifier used by protobuf, Connect,
1322
- * FFI, and package adapters. Values are append-only and intentionally grouped
1323
- * by primitive family so a numeric id has one meaning across every lane.
1324
- *
1325
- * @generated from enum reallyme.crypto.v1.CryptoOperation
2254
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretRequest
1326
2255
  */
1327
- export declare enum CryptoOperation {
2256
+ export type CryptoPlatformKeyAgreementDeriveSharedSecretRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretRequest"> & {
1328
2257
  /**
1329
- * @generated from enum value: CRYPTO_OPERATION_UNSPECIFIED = 0;
2258
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1330
2259
  */
1331
- UNSPECIFIED = 0,
2260
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
1332
2261
  /**
1333
- * @generated from enum value: CRYPTO_OPERATION_HASH = 1;
2262
+ * @generated from field: bytes peer_public_key = 2;
1334
2263
  */
1335
- HASH = 1,
1336
- /**
1337
- * @generated from enum value: CRYPTO_OPERATION_AEAD_SEAL = 2;
1338
- */
1339
- AEAD_SEAL = 2,
2264
+ peerPublicKey: Uint8Array;
2265
+ };
2266
+ /**
2267
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretRequest.
2268
+ * Use `create(CryptoPlatformKeyAgreementDeriveSharedSecretRequestSchema)` to create a new message.
2269
+ */
2270
+ export declare const CryptoPlatformKeyAgreementDeriveSharedSecretRequestSchema: GenMessage<CryptoPlatformKeyAgreementDeriveSharedSecretRequest>;
2271
+ /**
2272
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretResult
2273
+ */
2274
+ export type CryptoPlatformKeyAgreementDeriveSharedSecretResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretResult"> & {
1340
2275
  /**
1341
- * @generated from enum value: CRYPTO_OPERATION_AEAD_OPEN = 3;
2276
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1342
2277
  */
1343
- AEAD_OPEN = 3,
2278
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1344
2279
  /**
1345
- * @generated from enum value: CRYPTO_OPERATION_MAC_AUTHENTICATE = 4;
2280
+ * @generated from field: bytes shared_secret = 2;
1346
2281
  */
1347
- MAC_AUTHENTICATE = 4,
2282
+ sharedSecret: Uint8Array;
2283
+ };
2284
+ /**
2285
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretResult.
2286
+ * Use `create(CryptoPlatformKeyAgreementDeriveSharedSecretResultSchema)` to create a new message.
2287
+ */
2288
+ export declare const CryptoPlatformKeyAgreementDeriveSharedSecretResultSchema: GenMessage<CryptoPlatformKeyAgreementDeriveSharedSecretResult>;
2289
+ /**
2290
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyDeleteRequest
2291
+ */
2292
+ export type CryptoPlatformKeyDeleteRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyDeleteRequest"> & {
1348
2293
  /**
1349
- * @generated from enum value: CRYPTO_OPERATION_MAC_VERIFY = 5;
2294
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1350
2295
  */
1351
- MAC_VERIFY = 5,
2296
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
2297
+ };
2298
+ /**
2299
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyDeleteRequest.
2300
+ * Use `create(CryptoPlatformKeyDeleteRequestSchema)` to create a new message.
2301
+ */
2302
+ export declare const CryptoPlatformKeyDeleteRequestSchema: GenMessage<CryptoPlatformKeyDeleteRequest>;
2303
+ /**
2304
+ * Deletion is idempotent: deleting a well-formed handle whose key is already
2305
+ * absent succeeds. Malformed handles and provider mismatches remain typed
2306
+ * failures. The result echoes no handle so the boundary does not create an
2307
+ * unnecessary additional copy of a persistent key identifier.
2308
+ *
2309
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyDeleteResult
2310
+ */
2311
+ export type CryptoPlatformKeyDeleteResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyDeleteResult"> & {};
2312
+ /**
2313
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyDeleteResult.
2314
+ * Use `create(CryptoPlatformKeyDeleteResultSchema)` to create a new message.
2315
+ */
2316
+ export declare const CryptoPlatformKeyDeleteResultSchema: GenMessage<CryptoPlatformKeyDeleteResult>;
2317
+ /**
2318
+ * Attestation is an explicit evidence operation. A provider or security-level
2319
+ * enum value alone never proves that a key is hardware-backed.
2320
+ *
2321
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAttestRequest
2322
+ */
2323
+ export type CryptoPlatformKeyAttestRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyAttestRequest"> & {
1352
2324
  /**
1353
- * @generated from enum value: CRYPTO_OPERATION_SIGNATURE_GENERATE_KEY_PAIR = 10;
2325
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1354
2326
  */
1355
- SIGNATURE_GENERATE_KEY_PAIR = 10,
2327
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
1356
2328
  /**
1357
- * @generated from enum value: CRYPTO_OPERATION_SIGNATURE_DERIVE_KEY_PAIR = 11;
2329
+ * @generated from field: bytes challenge = 2;
1358
2330
  */
1359
- SIGNATURE_DERIVE_KEY_PAIR = 11,
2331
+ challenge: Uint8Array;
2332
+ };
2333
+ /**
2334
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAttestRequest.
2335
+ * Use `create(CryptoPlatformKeyAttestRequestSchema)` to create a new message.
2336
+ */
2337
+ export declare const CryptoPlatformKeyAttestRequestSchema: GenMessage<CryptoPlatformKeyAttestRequest>;
2338
+ /**
2339
+ * A wrapper keeps each certificate in a separately hardened generated owner
2340
+ * instead of retaining a nested byte-vector with ambiguous cleanup semantics.
2341
+ *
2342
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAttestationCertificate
2343
+ */
2344
+ export type CryptoPlatformKeyAttestationCertificate = Message<"reallyme.crypto.v1.CryptoPlatformKeyAttestationCertificate"> & {
1360
2345
  /**
1361
- * @generated from enum value: CRYPTO_OPERATION_SIGNATURE_SIGN = 12;
2346
+ * @generated from field: bytes certificate_der = 1;
1362
2347
  */
1363
- SIGNATURE_SIGN = 12,
2348
+ certificateDer: Uint8Array;
2349
+ };
2350
+ /**
2351
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAttestationCertificate.
2352
+ * Use `create(CryptoPlatformKeyAttestationCertificateSchema)` to create a new message.
2353
+ */
2354
+ export declare const CryptoPlatformKeyAttestationCertificateSchema: GenMessage<CryptoPlatformKeyAttestationCertificate>;
2355
+ /**
2356
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAttestResult
2357
+ */
2358
+ export type CryptoPlatformKeyAttestResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyAttestResult"> & {
1364
2359
  /**
1365
- * @generated from enum value: CRYPTO_OPERATION_SIGNATURE_VERIFY = 13;
2360
+ * @generated from field: repeated reallyme.crypto.v1.CryptoPlatformKeyAttestationCertificate certificate_chain = 1;
1366
2361
  */
1367
- SIGNATURE_VERIFY = 13,
2362
+ certificateChain: CryptoPlatformKeyAttestationCertificate[];
1368
2363
  /**
1369
- * @generated from enum value: CRYPTO_OPERATION_BIP340_SCHNORR_SIGN = 14;
2364
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel actual_security_level = 2;
1370
2365
  */
1371
- BIP340_SCHNORR_SIGN = 14,
2366
+ actualSecurityLevel: PlatformKeySecurityLevel;
2367
+ };
2368
+ /**
2369
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAttestResult.
2370
+ * Use `create(CryptoPlatformKeyAttestResultSchema)` to create a new message.
2371
+ */
2372
+ export declare const CryptoPlatformKeyAttestResultSchema: GenMessage<CryptoPlatformKeyAttestResult>;
2373
+ /**
2374
+ * CryptoVerificationResult is for protocol layers that need a stable,
2375
+ * serializable verification status. Ordinary facade calls should continue to
2376
+ * fail closed with typed errors.
2377
+ *
2378
+ * @generated from message reallyme.crypto.v1.CryptoVerificationResult
2379
+ */
2380
+ export type CryptoVerificationResult = Message<"reallyme.crypto.v1.CryptoVerificationResult"> & {
1372
2381
  /**
1373
- * @generated from enum value: CRYPTO_OPERATION_RSA_VERIFY = 15;
2382
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1374
2383
  */
1375
- RSA_VERIFY = 15,
2384
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1376
2385
  /**
1377
- * @generated from enum value: CRYPTO_OPERATION_KEY_AGREEMENT_DERIVE_SHARED_SECRET = 20;
2386
+ * @generated from field: reallyme.crypto.v1.CryptoVerificationStatus status = 2;
1378
2387
  */
1379
- KEY_AGREEMENT_DERIVE_SHARED_SECRET = 20,
2388
+ status: CryptoVerificationStatus;
1380
2389
  /**
1381
- * @generated from enum value: CRYPTO_OPERATION_KEY_AGREEMENT_DERIVE_KEY_PAIR = 21;
2390
+ * @generated from field: reallyme.crypto.v1.CryptoError error = 3;
1382
2391
  */
1383
- KEY_AGREEMENT_DERIVE_KEY_PAIR = 21,
2392
+ error?: CryptoError | undefined;
2393
+ };
2394
+ /**
2395
+ * Describes the message reallyme.crypto.v1.CryptoVerificationResult.
2396
+ * Use `create(CryptoVerificationResultSchema)` to create a new message.
2397
+ */
2398
+ export declare const CryptoVerificationResultSchema: GenMessage<CryptoVerificationResult>;
2399
+ /**
2400
+ * CryptoProviderCapability describes the package/provider posture for one
2401
+ * algorithm in one published lane. Provider names are non-secret identifiers
2402
+ * such as "CryptoKit", "BouncyCastle", or "ReallyMe Rust WASM".
2403
+ *
2404
+ * @generated from message reallyme.crypto.v1.CryptoProviderCapability
2405
+ */
2406
+ export type CryptoProviderCapability = Message<"reallyme.crypto.v1.CryptoProviderCapability"> & {
1384
2407
  /**
1385
- * @generated from enum value: CRYPTO_OPERATION_KEM_GENERATE_KEY_PAIR = 30;
2408
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1386
2409
  */
1387
- KEM_GENERATE_KEY_PAIR = 30,
2410
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1388
2411
  /**
1389
- * @generated from enum value: CRYPTO_OPERATION_KEM_ENCAPSULATE = 31;
2412
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmFamily family = 2;
1390
2413
  */
1391
- KEM_ENCAPSULATE = 31,
2414
+ family: CryptoAlgorithmFamily;
1392
2415
  /**
1393
- * @generated from enum value: CRYPTO_OPERATION_KEM_DECAPSULATE = 32;
2416
+ * @generated from field: reallyme.crypto.v1.CryptoProviderSupportStatus status = 3;
1394
2417
  */
1395
- KEM_DECAPSULATE = 32,
2418
+ status: CryptoProviderSupportStatus;
1396
2419
  /**
1397
- * @generated from enum value: CRYPTO_OPERATION_HKDF_DERIVE = 40;
2420
+ * @generated from field: repeated string provider_names = 4;
1398
2421
  */
1399
- HKDF_DERIVE = 40,
2422
+ providerNames: string[];
1400
2423
  /**
1401
- * @generated from enum value: CRYPTO_OPERATION_KDF_DERIVE_KEY = 41;
2424
+ * @generated from field: bool uses_rust = 5;
1402
2425
  */
1403
- KDF_DERIVE_KEY = 41,
2426
+ usesRust: boolean;
2427
+ };
2428
+ /**
2429
+ * Describes the message reallyme.crypto.v1.CryptoProviderCapability.
2430
+ * Use `create(CryptoProviderCapabilitySchema)` to create a new message.
2431
+ */
2432
+ export declare const CryptoProviderCapabilitySchema: GenMessage<CryptoProviderCapability>;
2433
+ /**
2434
+ * @generated from message reallyme.crypto.v1.CryptoProviderCapabilitySet
2435
+ */
2436
+ export type CryptoProviderCapabilitySet = Message<"reallyme.crypto.v1.CryptoProviderCapabilitySet"> & {
1404
2437
  /**
1405
- * @generated from enum value: CRYPTO_OPERATION_JWA_CONCAT_KDF_SHA256_DERIVE = 42;
2438
+ * @generated from field: repeated reallyme.crypto.v1.CryptoProviderCapability capabilities = 1;
1406
2439
  */
1407
- JWA_CONCAT_KDF_SHA256_DERIVE = 42,
2440
+ capabilities: CryptoProviderCapability[];
2441
+ };
2442
+ /**
2443
+ * Describes the message reallyme.crypto.v1.CryptoProviderCapabilitySet.
2444
+ * Use `create(CryptoProviderCapabilitySetSchema)` to create a new message.
2445
+ */
2446
+ export declare const CryptoProviderCapabilitySetSchema: GenMessage<CryptoProviderCapabilitySet>;
2447
+ /**
2448
+ * JsonWebKey carries a public JWK document at API/storage boundaries. The JSON
2449
+ * member is the canonical JCS form used by the package vectors; private key
2450
+ * material is intentionally out of scope for this message.
2451
+ *
2452
+ * @generated from message reallyme.crypto.v1.JsonWebKey
2453
+ */
2454
+ export type JsonWebKey = Message<"reallyme.crypto.v1.JsonWebKey"> & {
1408
2455
  /**
1409
- * @generated from enum value: CRYPTO_OPERATION_KEY_WRAP = 50;
2456
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1410
2457
  */
1411
- KEY_WRAP = 50,
2458
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1412
2459
  /**
1413
- * @generated from enum value: CRYPTO_OPERATION_KEY_UNWRAP = 51;
2460
+ * @generated from field: bytes public_key = 2;
1414
2461
  */
1415
- KEY_UNWRAP = 51,
2462
+ publicKey: Uint8Array;
1416
2463
  /**
1417
- * @generated from enum value: CRYPTO_OPERATION_HPKE_SEAL = 60;
2464
+ * @generated from field: bytes canonical_jcs = 3;
1418
2465
  */
1419
- HPKE_SEAL = 60,
2466
+ canonicalJcs: Uint8Array;
2467
+ };
2468
+ /**
2469
+ * Describes the message reallyme.crypto.v1.JsonWebKey.
2470
+ * Use `create(JsonWebKeySchema)` to create a new message.
2471
+ */
2472
+ export declare const JsonWebKeySchema: GenMessage<JsonWebKey>;
2473
+ /**
2474
+ * JsonWebKeySet is the protobuf boundary equivalent of the JSON { "keys": [] }
2475
+ * JWKS wrapper. It stores parsed public-key records rather than arbitrary JSON.
2476
+ *
2477
+ * @generated from message reallyme.crypto.v1.JsonWebKeySet
2478
+ */
2479
+ export type JsonWebKeySet = Message<"reallyme.crypto.v1.JsonWebKeySet"> & {
1420
2480
  /**
1421
- * @generated from enum value: CRYPTO_OPERATION_HPKE_OPEN = 61;
2481
+ * @generated from field: repeated reallyme.crypto.v1.JsonWebKey keys = 1;
1422
2482
  */
1423
- HPKE_OPEN = 61
1424
- }
2483
+ keys: JsonWebKey[];
2484
+ };
1425
2485
  /**
1426
- * Describes the enum reallyme.crypto.v1.CryptoOperation.
2486
+ * Describes the message reallyme.crypto.v1.JsonWebKeySet.
2487
+ * Use `create(JsonWebKeySetSchema)` to create a new message.
1427
2488
  */
1428
- export declare const CryptoOperationSchema: GenEnum<CryptoOperation>;
2489
+ export declare const JsonWebKeySetSchema: GenMessage<JsonWebKeySet>;
1429
2490
  /**
1430
2491
  * CryptoErrorReason is the component-owned reason-code enum for reallyme/crypto.
1431
2492
  * Values are stable public boundary codes; internal Rust, Swift, Kotlin, and
@@ -1507,6 +2568,22 @@ export declare enum CryptoErrorReason {
1507
2568
  * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_INVALID_SHARED_SECRET = 125;
1508
2569
  */
1509
2570
  PRIMITIVE_INVALID_SHARED_SECRET = 125,
2571
+ /**
2572
+ * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_MALFORMED_PROTOBUF = 130;
2573
+ */
2574
+ PRIMITIVE_MALFORMED_PROTOBUF = 130,
2575
+ /**
2576
+ * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_MALFORMED_JSON = 131;
2577
+ */
2578
+ PRIMITIVE_MALFORMED_JSON = 131,
2579
+ /**
2580
+ * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_RESOURCE_LIMIT_EXCEEDED = 132;
2581
+ */
2582
+ PRIMITIVE_RESOURCE_LIMIT_EXCEEDED = 132,
2583
+ /**
2584
+ * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_MISSING_OPERATION = 133;
2585
+ */
2586
+ PRIMITIVE_MISSING_OPERATION = 133,
1510
2587
  /**
1511
2588
  * Provider policy and availability.
1512
2589
  *
@@ -1526,27 +2603,43 @@ export declare enum CryptoErrorReason {
1526
2603
  */
1527
2604
  PROVIDER_RANDOMNESS_UNAVAILABLE = 203,
1528
2605
  /**
1529
- * Backend dispatch and internal state.
1530
- *
1531
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_INVALID_STATE = 300;
2606
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_KEY_EXISTS = 204;
1532
2607
  */
1533
- BACKEND_INVALID_STATE = 300,
2608
+ PROVIDER_KEY_EXISTS = 204,
1534
2609
  /**
1535
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_INTERNAL = 301;
2610
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_KEY_NOT_FOUND = 205;
1536
2611
  */
1537
- BACKEND_INTERNAL = 301,
2612
+ PROVIDER_KEY_NOT_FOUND = 205,
1538
2613
  /**
1539
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_MALFORMED_PROTOBUF = 302;
2614
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_ACCESS_DENIED = 206;
1540
2615
  */
1541
- BACKEND_MALFORMED_PROTOBUF = 302,
2616
+ PROVIDER_ACCESS_DENIED = 206,
1542
2617
  /**
1543
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_MALFORMED_JSON = 303;
2618
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_USER_AUTHENTICATION_REQUIRED = 207;
1544
2619
  */
1545
- BACKEND_MALFORMED_JSON = 303,
2620
+ PROVIDER_USER_AUTHENTICATION_REQUIRED = 207,
1546
2621
  /**
1547
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_RESOURCE_LIMIT_EXCEEDED = 304;
2622
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_USER_CANCELED = 208;
1548
2623
  */
1549
- BACKEND_RESOURCE_LIMIT_EXCEEDED = 304
2624
+ PROVIDER_USER_CANCELED = 208,
2625
+ /**
2626
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_HARDWARE_UNAVAILABLE = 209;
2627
+ */
2628
+ PROVIDER_HARDWARE_UNAVAILABLE = 209,
2629
+ /**
2630
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_HARDWARE_REJECTED_KEY = 210;
2631
+ */
2632
+ PROVIDER_HARDWARE_REJECTED_KEY = 210,
2633
+ /**
2634
+ * Backend dispatch and internal state.
2635
+ *
2636
+ * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_INVALID_STATE = 300;
2637
+ */
2638
+ BACKEND_INVALID_STATE = 300,
2639
+ /**
2640
+ * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_INTERNAL = 301;
2641
+ */
2642
+ BACKEND_INTERNAL = 301
1550
2643
  }
1551
2644
  /**
1552
2645
  * Describes the enum reallyme.crypto.v1.CryptoErrorReason.
@@ -1605,9 +2698,20 @@ export declare enum CryptoAlgorithmFamily {
1605
2698
  */
1606
2699
  export declare const CryptoAlgorithmFamilySchema: GenEnum<CryptoAlgorithmFamily>;
1607
2700
  /**
1608
- * SignatureAlgorithm identifies signature suites supported or reserved by the
1609
- * crypto repository. RSA values identify verification suites; RSA signing is
1610
- * intentionally not exposed by this package today.
2701
+ * Algorithm selector values are a permanent, append-only wire contract from
2702
+ * this release onward. Each family-scoped enum uses sparse subfamily bands so
2703
+ * future suites can be added beside related algorithms without renumbering an
2704
+ * existing value.
2705
+ *
2706
+ * SignatureAlgorithm bands:
2707
+ * 100-199: EdDSA
2708
+ * 200-299: elliptic-curve signatures
2709
+ * 300-499: RSA verification suites
2710
+ * 1000-1099: post-quantum signatures
2711
+ * 1100-1199: hash-based post-quantum signatures
2712
+ *
2713
+ * RSA values identify verification suites; RSA signing is intentionally not
2714
+ * exposed by this package today.
1611
2715
  *
1612
2716
  * @generated from enum reallyme.crypto.v1.SignatureAlgorithm
1613
2717
  */
@@ -1617,77 +2721,77 @@ export declare enum SignatureAlgorithm {
1617
2721
  */
1618
2722
  UNSPECIFIED = 0,
1619
2723
  /**
1620
- * @generated from enum value: SIGNATURE_ALGORITHM_ED25519 = 1;
2724
+ * @generated from enum value: SIGNATURE_ALGORITHM_ED25519 = 100;
1621
2725
  */
1622
- ED25519 = 1,
2726
+ ED25519 = 100,
1623
2727
  /**
1624
- * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P256_SHA256 = 2;
2728
+ * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P256_SHA256 = 200;
1625
2729
  */
1626
- ECDSA_P256_SHA256 = 2,
2730
+ ECDSA_P256_SHA256 = 200,
1627
2731
  /**
1628
- * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P384_SHA384 = 3;
2732
+ * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P384_SHA384 = 210;
1629
2733
  */
1630
- ECDSA_P384_SHA384 = 3,
2734
+ ECDSA_P384_SHA384 = 210,
1631
2735
  /**
1632
- * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P521_SHA512 = 4;
2736
+ * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P521_SHA512 = 220;
1633
2737
  */
1634
- ECDSA_P521_SHA512 = 4,
2738
+ ECDSA_P521_SHA512 = 220,
1635
2739
  /**
1636
- * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_SECP256K1_SHA256 = 5;
2740
+ * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_SECP256K1_SHA256 = 230;
1637
2741
  */
1638
- ECDSA_SECP256K1_SHA256 = 5,
2742
+ ECDSA_SECP256K1_SHA256 = 230,
1639
2743
  /**
1640
- * @generated from enum value: SIGNATURE_ALGORITHM_BIP340_SCHNORR_SECP256K1_SHA256 = 6;
2744
+ * @generated from enum value: SIGNATURE_ALGORITHM_BIP340_SCHNORR_SECP256K1_SHA256 = 240;
1641
2745
  */
1642
- BIP340_SCHNORR_SECP256K1_SHA256 = 6,
2746
+ BIP340_SCHNORR_SECP256K1_SHA256 = 240,
1643
2747
  /**
1644
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA1 = 7;
2748
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA1 = 300;
1645
2749
  */
1646
- RSA_PKCS1V15_SHA1 = 7,
2750
+ RSA_PKCS1V15_SHA1 = 300,
1647
2751
  /**
1648
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA256 = 8;
2752
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA256 = 310;
1649
2753
  */
1650
- RSA_PKCS1V15_SHA256 = 8,
2754
+ RSA_PKCS1V15_SHA256 = 310,
1651
2755
  /**
1652
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA384 = 9;
2756
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA384 = 320;
1653
2757
  */
1654
- RSA_PKCS1V15_SHA384 = 9,
2758
+ RSA_PKCS1V15_SHA384 = 320,
1655
2759
  /**
1656
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA512 = 10;
2760
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA512 = 330;
1657
2761
  */
1658
- RSA_PKCS1V15_SHA512 = 10,
2762
+ RSA_PKCS1V15_SHA512 = 330,
1659
2763
  /**
1660
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA1_MGF1_SHA1 = 11;
2764
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA1_MGF1_SHA1 = 400;
1661
2765
  */
1662
- RSA_PSS_SHA1_MGF1_SHA1 = 11,
2766
+ RSA_PSS_SHA1_MGF1_SHA1 = 400,
1663
2767
  /**
1664
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA256_MGF1_SHA256 = 12;
2768
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA256_MGF1_SHA256 = 410;
1665
2769
  */
1666
- RSA_PSS_SHA256_MGF1_SHA256 = 12,
2770
+ RSA_PSS_SHA256_MGF1_SHA256 = 410,
1667
2771
  /**
1668
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA384_MGF1_SHA384 = 13;
2772
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA384_MGF1_SHA384 = 420;
1669
2773
  */
1670
- RSA_PSS_SHA384_MGF1_SHA384 = 13,
2774
+ RSA_PSS_SHA384_MGF1_SHA384 = 420,
1671
2775
  /**
1672
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA512_MGF1_SHA512 = 14;
2776
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA512_MGF1_SHA512 = 430;
1673
2777
  */
1674
- RSA_PSS_SHA512_MGF1_SHA512 = 14,
2778
+ RSA_PSS_SHA512_MGF1_SHA512 = 430,
1675
2779
  /**
1676
- * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_44 = 15;
2780
+ * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_44 = 1000;
1677
2781
  */
1678
- ML_DSA_44 = 15,
2782
+ ML_DSA_44 = 1000,
1679
2783
  /**
1680
- * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_65 = 16;
2784
+ * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_65 = 1010;
1681
2785
  */
1682
- ML_DSA_65 = 16,
2786
+ ML_DSA_65 = 1010,
1683
2787
  /**
1684
- * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_87 = 17;
2788
+ * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_87 = 1020;
1685
2789
  */
1686
- ML_DSA_87 = 17,
2790
+ ML_DSA_87 = 1020,
1687
2791
  /**
1688
- * @generated from enum value: SIGNATURE_ALGORITHM_SLH_DSA_SHA2_128S = 18;
2792
+ * @generated from enum value: SIGNATURE_ALGORITHM_SLH_DSA_SHA2_128S = 1100;
1689
2793
  */
1690
- SLH_DSA_SHA2_128S = 18
2794
+ SLH_DSA_SHA2_128S = 1100
1691
2795
  }
1692
2796
  /**
1693
2797
  * Describes the enum reallyme.crypto.v1.SignatureAlgorithm.
@@ -1695,7 +2799,9 @@ export declare enum SignatureAlgorithm {
1695
2799
  export declare const SignatureAlgorithmSchema: GenEnum<SignatureAlgorithm>;
1696
2800
  /**
1697
2801
  * KeyAgreementAlgorithm identifies direct shared-secret derivation suites.
1698
- * Callers must still feed derived shared secrets through a protocol KDF.
2802
+ * Values 100-199 are Montgomery-form curves and 200-299 are NIST prime
2803
+ * curves. Callers must still feed derived shared secrets through a protocol
2804
+ * KDF.
1699
2805
  *
1700
2806
  * @generated from enum reallyme.crypto.v1.KeyAgreementAlgorithm
1701
2807
  */
@@ -1705,29 +2811,30 @@ export declare enum KeyAgreementAlgorithm {
1705
2811
  */
1706
2812
  UNSPECIFIED = 0,
1707
2813
  /**
1708
- * @generated from enum value: KEY_AGREEMENT_ALGORITHM_X25519 = 1;
2814
+ * @generated from enum value: KEY_AGREEMENT_ALGORITHM_X25519 = 100;
1709
2815
  */
1710
- X25519 = 1,
2816
+ X25519 = 100,
1711
2817
  /**
1712
- * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P256_ECDH = 2;
2818
+ * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P256_ECDH = 200;
1713
2819
  */
1714
- P256_ECDH = 2,
2820
+ P256_ECDH = 200,
1715
2821
  /**
1716
- * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P384_ECDH = 3;
2822
+ * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P384_ECDH = 210;
1717
2823
  */
1718
- P384_ECDH = 3,
2824
+ P384_ECDH = 210,
1719
2825
  /**
1720
- * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P521_ECDH = 4;
2826
+ * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P521_ECDH = 220;
1721
2827
  */
1722
- P521_ECDH = 4
2828
+ P521_ECDH = 220
1723
2829
  }
1724
2830
  /**
1725
2831
  * Describes the enum reallyme.crypto.v1.KeyAgreementAlgorithm.
1726
2832
  */
1727
2833
  export declare const KeyAgreementAlgorithmSchema: GenEnum<KeyAgreementAlgorithm>;
1728
2834
  /**
1729
- * KemAlgorithm identifies encapsulation suites. X-Wing values are ReallyMe's
1730
- * supported hybrid KEM variants over X25519 and ML-KEM.
2835
+ * KemAlgorithm identifies encapsulation suites. X-Wing values are supported
2836
+ * hybrid KEM variants over X25519 and ML-KEM. Values 1000-1099 are
2837
+ * post-quantum KEMs and 1100-1199 are hybrid KEMs.
1731
2838
  *
1732
2839
  * @generated from enum reallyme.crypto.v1.KemAlgorithm
1733
2840
  */
@@ -1737,55 +2844,189 @@ export declare enum KemAlgorithm {
1737
2844
  */
1738
2845
  UNSPECIFIED = 0,
1739
2846
  /**
1740
- * @generated from enum value: KEM_ALGORITHM_ML_KEM_512 = 1;
1741
- */
1742
- ML_KEM_512 = 1,
1743
- /**
1744
- * @generated from enum value: KEM_ALGORITHM_ML_KEM_768 = 2;
2847
+ * @generated from enum value: KEM_ALGORITHM_ML_KEM_512 = 1000;
1745
2848
  */
1746
- ML_KEM_768 = 2,
2849
+ ML_KEM_512 = 1000,
1747
2850
  /**
1748
- * @generated from enum value: KEM_ALGORITHM_ML_KEM_1024 = 3;
2851
+ * @generated from enum value: KEM_ALGORITHM_ML_KEM_768 = 1010;
1749
2852
  */
1750
- ML_KEM_1024 = 3,
2853
+ ML_KEM_768 = 1010,
1751
2854
  /**
1752
- * @generated from enum value: KEM_ALGORITHM_X_WING_768 = 4;
2855
+ * @generated from enum value: KEM_ALGORITHM_ML_KEM_1024 = 1020;
1753
2856
  */
1754
- X_WING_768 = 4,
2857
+ ML_KEM_1024 = 1020,
1755
2858
  /**
1756
- * @generated from enum value: KEM_ALGORITHM_X_WING_1024 = 5;
2859
+ * @generated from enum value: KEM_ALGORITHM_X_WING_768 = 1100;
1757
2860
  */
1758
- X_WING_1024 = 5
2861
+ X_WING_768 = 1100
1759
2862
  }
1760
2863
  /**
1761
2864
  * Describes the enum reallyme.crypto.v1.KemAlgorithm.
1762
2865
  */
1763
2866
  export declare const KemAlgorithmSchema: GenEnum<KemAlgorithm>;
1764
2867
  /**
1765
- * HpkeSuite identifies supported RFC 9180 HPKE Base-mode ciphersuites.
2868
+ * HpkeKemId carries the two-byte HPKE KEM registry identifier. Registered
2869
+ * draft values are append-only wire values even while their defining drafts
2870
+ * continue to evolve. Runtime provider policy separately determines whether a
2871
+ * registered identifier is executable in a given build.
2872
+ *
2873
+ * @generated from enum reallyme.crypto.v1.HpkeKemId
2874
+ */
2875
+ export declare enum HpkeKemId {
2876
+ /**
2877
+ * @generated from enum value: HPKE_KEM_ID_UNSPECIFIED = 0;
2878
+ */
2879
+ UNSPECIFIED = 0,
2880
+ /**
2881
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_P256_HKDF_SHA256 = 16;
2882
+ */
2883
+ DHKEM_P256_HKDF_SHA256 = 16,
2884
+ /**
2885
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_P384_HKDF_SHA384 = 17;
2886
+ */
2887
+ DHKEM_P384_HKDF_SHA384 = 17,
2888
+ /**
2889
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_P521_HKDF_SHA512 = 18;
2890
+ */
2891
+ DHKEM_P521_HKDF_SHA512 = 18,
2892
+ /**
2893
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_CP256_HKDF_SHA256 = 19;
2894
+ */
2895
+ DHKEM_CP256_HKDF_SHA256 = 19,
2896
+ /**
2897
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_CP384_HKDF_SHA384 = 20;
2898
+ */
2899
+ DHKEM_CP384_HKDF_SHA384 = 20,
2900
+ /**
2901
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_CP521_HKDF_SHA512 = 21;
2902
+ */
2903
+ DHKEM_CP521_HKDF_SHA512 = 21,
2904
+ /**
2905
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_SECP256K1_HKDF_SHA256 = 22;
2906
+ */
2907
+ DHKEM_SECP256K1_HKDF_SHA256 = 22,
2908
+ /**
2909
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_X25519_HKDF_SHA256 = 32;
2910
+ */
2911
+ DHKEM_X25519_HKDF_SHA256 = 32,
2912
+ /**
2913
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_X448_HKDF_SHA512 = 33;
2914
+ */
2915
+ DHKEM_X448_HKDF_SHA512 = 33,
2916
+ /**
2917
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_X25519_ELLIGATOR_HKDF_SHA256 = 34;
2918
+ */
2919
+ DHKEM_X25519_ELLIGATOR_HKDF_SHA256 = 34,
2920
+ /**
2921
+ * @generated from enum value: HPKE_KEM_ID_X25519_KYBER768_DRAFT00 = 48;
2922
+ */
2923
+ X25519_KYBER768_DRAFT00 = 48,
2924
+ /**
2925
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_512 = 64;
2926
+ */
2927
+ ML_KEM_512 = 64,
2928
+ /**
2929
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_768 = 65;
2930
+ */
2931
+ ML_KEM_768 = 65,
2932
+ /**
2933
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_1024 = 66;
2934
+ */
2935
+ ML_KEM_1024 = 66,
2936
+ /**
2937
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_768_P256 = 80;
2938
+ */
2939
+ ML_KEM_768_P256 = 80,
2940
+ /**
2941
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_1024_P384 = 81;
2942
+ */
2943
+ ML_KEM_1024_P384 = 81,
2944
+ /**
2945
+ * @generated from enum value: HPKE_KEM_ID_X_WING = 25722;
2946
+ */
2947
+ X_WING = 25722
2948
+ }
2949
+ /**
2950
+ * Describes the enum reallyme.crypto.v1.HpkeKemId.
2951
+ */
2952
+ export declare const HpkeKemIdSchema: GenEnum<HpkeKemId>;
2953
+ /**
2954
+ * HpkeKdfId carries the two-byte HPKE KDF registry identifier.
2955
+ *
2956
+ * @generated from enum reallyme.crypto.v1.HpkeKdfId
2957
+ */
2958
+ export declare enum HpkeKdfId {
2959
+ /**
2960
+ * @generated from enum value: HPKE_KDF_ID_UNSPECIFIED = 0;
2961
+ */
2962
+ UNSPECIFIED = 0,
2963
+ /**
2964
+ * @generated from enum value: HPKE_KDF_ID_HKDF_SHA256 = 1;
2965
+ */
2966
+ HKDF_SHA256 = 1,
2967
+ /**
2968
+ * @generated from enum value: HPKE_KDF_ID_HKDF_SHA384 = 2;
2969
+ */
2970
+ HKDF_SHA384 = 2,
2971
+ /**
2972
+ * @generated from enum value: HPKE_KDF_ID_HKDF_SHA512 = 3;
2973
+ */
2974
+ HKDF_SHA512 = 3,
2975
+ /**
2976
+ * @generated from enum value: HPKE_KDF_ID_SHAKE128 = 16;
2977
+ */
2978
+ SHAKE128 = 16,
2979
+ /**
2980
+ * @generated from enum value: HPKE_KDF_ID_SHAKE256 = 17;
2981
+ */
2982
+ SHAKE256 = 17,
2983
+ /**
2984
+ * @generated from enum value: HPKE_KDF_ID_TURBO_SHAKE128 = 18;
2985
+ */
2986
+ TURBO_SHAKE128 = 18,
2987
+ /**
2988
+ * @generated from enum value: HPKE_KDF_ID_TURBO_SHAKE256 = 19;
2989
+ */
2990
+ TURBO_SHAKE256 = 19
2991
+ }
2992
+ /**
2993
+ * Describes the enum reallyme.crypto.v1.HpkeKdfId.
2994
+ */
2995
+ export declare const HpkeKdfIdSchema: GenEnum<HpkeKdfId>;
2996
+ /**
2997
+ * HpkeAeadId carries the two-byte HPKE AEAD registry identifier.
1766
2998
  *
1767
- * @generated from enum reallyme.crypto.v1.HpkeSuite
2999
+ * @generated from enum reallyme.crypto.v1.HpkeAeadId
1768
3000
  */
1769
- export declare enum HpkeSuite {
3001
+ export declare enum HpkeAeadId {
1770
3002
  /**
1771
- * @generated from enum value: HPKE_SUITE_UNSPECIFIED = 0;
3003
+ * @generated from enum value: HPKE_AEAD_ID_UNSPECIFIED = 0;
1772
3004
  */
1773
3005
  UNSPECIFIED = 0,
1774
3006
  /**
1775
- * @generated from enum value: HPKE_SUITE_DHKEM_P256_HKDF_SHA256_HKDF_SHA256_AES_256_GCM = 1;
3007
+ * @generated from enum value: HPKE_AEAD_ID_AES_128_GCM = 1;
3008
+ */
3009
+ AES_128_GCM = 1,
3010
+ /**
3011
+ * @generated from enum value: HPKE_AEAD_ID_AES_256_GCM = 2;
3012
+ */
3013
+ AES_256_GCM = 2,
3014
+ /**
3015
+ * @generated from enum value: HPKE_AEAD_ID_CHACHA20_POLY1305 = 3;
1776
3016
  */
1777
- DHKEM_P256_HKDF_SHA256_HKDF_SHA256_AES_256_GCM = 1,
3017
+ CHACHA20_POLY1305 = 3,
1778
3018
  /**
1779
- * @generated from enum value: HPKE_SUITE_DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_CHACHA20_POLY1305 = 2;
3019
+ * @generated from enum value: HPKE_AEAD_ID_EXPORT_ONLY = 65535;
1780
3020
  */
1781
- DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_CHACHA20_POLY1305 = 2
3021
+ EXPORT_ONLY = 65535
1782
3022
  }
1783
3023
  /**
1784
- * Describes the enum reallyme.crypto.v1.HpkeSuite.
3024
+ * Describes the enum reallyme.crypto.v1.HpkeAeadId.
1785
3025
  */
1786
- export declare const HpkeSuiteSchema: GenEnum<HpkeSuite>;
3026
+ export declare const HpkeAeadIdSchema: GenEnum<HpkeAeadId>;
1787
3027
  /**
1788
- * AeadAlgorithm identifies authenticated-encryption suites.
3028
+ * AeadAlgorithm identifies authenticated-encryption suites. Values 100-199 are
3029
+ * AES-based suites and 200-299 are ChaCha-based suites.
1789
3030
  *
1790
3031
  * @generated from enum reallyme.crypto.v1.AeadAlgorithm
1791
3032
  */
@@ -1795,29 +3036,29 @@ export declare enum AeadAlgorithm {
1795
3036
  */
1796
3037
  UNSPECIFIED = 0,
1797
3038
  /**
1798
- * @generated from enum value: AEAD_ALGORITHM_AES_256_GCM = 1;
3039
+ * @generated from enum value: AEAD_ALGORITHM_AES_128_GCM = 100;
1799
3040
  */
1800
- AES_256_GCM = 1,
3041
+ AES_128_GCM = 100,
1801
3042
  /**
1802
- * @generated from enum value: AEAD_ALGORITHM_AES_256_GCM_SIV = 2;
3043
+ * @generated from enum value: AEAD_ALGORITHM_AES_192_GCM = 110;
1803
3044
  */
1804
- AES_256_GCM_SIV = 2,
3045
+ AES_192_GCM = 110,
1805
3046
  /**
1806
- * @generated from enum value: AEAD_ALGORITHM_CHACHA20_POLY1305 = 3;
3047
+ * @generated from enum value: AEAD_ALGORITHM_AES_256_GCM = 120;
1807
3048
  */
1808
- CHACHA20_POLY1305 = 3,
3049
+ AES_256_GCM = 120,
1809
3050
  /**
1810
- * @generated from enum value: AEAD_ALGORITHM_XCHACHA20_POLY1305 = 4;
3051
+ * @generated from enum value: AEAD_ALGORITHM_AES_256_GCM_SIV = 130;
1811
3052
  */
1812
- XCHACHA20_POLY1305 = 4,
3053
+ AES_256_GCM_SIV = 130,
1813
3054
  /**
1814
- * @generated from enum value: AEAD_ALGORITHM_AES_128_GCM = 5;
3055
+ * @generated from enum value: AEAD_ALGORITHM_CHACHA20_POLY1305 = 200;
1815
3056
  */
1816
- AES_128_GCM = 5,
3057
+ CHACHA20_POLY1305 = 200,
1817
3058
  /**
1818
- * @generated from enum value: AEAD_ALGORITHM_AES_192_GCM = 6;
3059
+ * @generated from enum value: AEAD_ALGORITHM_XCHACHA20_POLY1305 = 210;
1819
3060
  */
1820
- AES_192_GCM = 6
3061
+ XCHACHA20_POLY1305 = 210
1821
3062
  }
1822
3063
  /**
1823
3064
  * Describes the enum reallyme.crypto.v1.AeadAlgorithm.
@@ -1825,6 +3066,7 @@ export declare enum AeadAlgorithm {
1825
3066
  export declare const AeadAlgorithmSchema: GenEnum<AeadAlgorithm>;
1826
3067
  /**
1827
3068
  * HashAlgorithm identifies digest algorithms exposed by the hash primitives.
3069
+ * Values 100-199 are SHA-2 and 200-299 are SHA-3.
1828
3070
  *
1829
3071
  * @generated from enum reallyme.crypto.v1.HashAlgorithm
1830
3072
  */
@@ -1834,40 +3076,41 @@ export declare enum HashAlgorithm {
1834
3076
  */
1835
3077
  UNSPECIFIED = 0,
1836
3078
  /**
1837
- * @generated from enum value: HASH_ALGORITHM_SHA2_256 = 1;
3079
+ * @generated from enum value: HASH_ALGORITHM_SHA2_256 = 100;
1838
3080
  */
1839
- SHA2_256 = 1,
3081
+ SHA2_256 = 100,
1840
3082
  /**
1841
- * @generated from enum value: HASH_ALGORITHM_SHA2_384 = 2;
3083
+ * @generated from enum value: HASH_ALGORITHM_SHA2_384 = 110;
1842
3084
  */
1843
- SHA2_384 = 2,
3085
+ SHA2_384 = 110,
1844
3086
  /**
1845
- * @generated from enum value: HASH_ALGORITHM_SHA2_512 = 3;
3087
+ * @generated from enum value: HASH_ALGORITHM_SHA2_512 = 120;
1846
3088
  */
1847
- SHA2_512 = 3,
3089
+ SHA2_512 = 120,
1848
3090
  /**
1849
- * @generated from enum value: HASH_ALGORITHM_SHA3_224 = 4;
3091
+ * @generated from enum value: HASH_ALGORITHM_SHA3_224 = 200;
1850
3092
  */
1851
- SHA3_224 = 4,
3093
+ SHA3_224 = 200,
1852
3094
  /**
1853
- * @generated from enum value: HASH_ALGORITHM_SHA3_256 = 5;
3095
+ * @generated from enum value: HASH_ALGORITHM_SHA3_256 = 210;
1854
3096
  */
1855
- SHA3_256 = 5,
3097
+ SHA3_256 = 210,
1856
3098
  /**
1857
- * @generated from enum value: HASH_ALGORITHM_SHA3_384 = 6;
3099
+ * @generated from enum value: HASH_ALGORITHM_SHA3_384 = 220;
1858
3100
  */
1859
- SHA3_384 = 6,
3101
+ SHA3_384 = 220,
1860
3102
  /**
1861
- * @generated from enum value: HASH_ALGORITHM_SHA3_512 = 7;
3103
+ * @generated from enum value: HASH_ALGORITHM_SHA3_512 = 230;
1862
3104
  */
1863
- SHA3_512 = 7
3105
+ SHA3_512 = 230
1864
3106
  }
1865
3107
  /**
1866
3108
  * Describes the enum reallyme.crypto.v1.HashAlgorithm.
1867
3109
  */
1868
3110
  export declare const HashAlgorithmSchema: GenEnum<HashAlgorithm>;
1869
3111
  /**
1870
- * MacAlgorithm identifies message-authentication-code suites.
3112
+ * MacAlgorithm identifies message-authentication-code suites. Values 100-199
3113
+ * are HMAC suites over SHA-2.
1871
3114
  *
1872
3115
  * @generated from enum reallyme.crypto.v1.MacAlgorithm
1873
3116
  */
@@ -1877,21 +3120,32 @@ export declare enum MacAlgorithm {
1877
3120
  */
1878
3121
  UNSPECIFIED = 0,
1879
3122
  /**
1880
- * @generated from enum value: MAC_ALGORITHM_HMAC_SHA256 = 1;
3123
+ * @generated from enum value: MAC_ALGORITHM_HMAC_SHA256 = 100;
3124
+ */
3125
+ HMAC_SHA256 = 100,
3126
+ /**
3127
+ * @generated from enum value: MAC_ALGORITHM_HMAC_SHA384 = 110;
1881
3128
  */
1882
- HMAC_SHA256 = 1,
3129
+ HMAC_SHA384 = 110,
1883
3130
  /**
1884
- * @generated from enum value: MAC_ALGORITHM_HMAC_SHA512 = 2;
3131
+ * @generated from enum value: MAC_ALGORITHM_HMAC_SHA512 = 120;
1885
3132
  */
1886
- HMAC_SHA512 = 2
3133
+ HMAC_SHA512 = 120
1887
3134
  }
1888
3135
  /**
1889
3136
  * Describes the enum reallyme.crypto.v1.MacAlgorithm.
1890
3137
  */
1891
3138
  export declare const MacAlgorithmSchema: GenEnum<MacAlgorithm>;
1892
3139
  /**
1893
- * KdfAlgorithm identifies key-derivation functions. PBKDF2 values are retained
1894
- * for legacy interoperability; new password storage should prefer Argon2id.
3140
+ * KdfAlgorithm identifies key-derivation functions. PBKDF2 values remain for
3141
+ * standards and password-record interoperability; new password storage should
3142
+ * prefer Argon2id.
3143
+ * Values are grouped by construction:
3144
+ * 100-199: extract-and-expand KDFs
3145
+ * 200-299: memory-hard password KDFs
3146
+ * 300-399: password-record KDFs
3147
+ * 400-499: concatenation KDFs
3148
+ * 500-599: XOF/MAC-based KDFs
1895
3149
  *
1896
3150
  * @generated from enum reallyme.crypto.v1.KdfAlgorithm
1897
3151
  */
@@ -1901,32 +3155,66 @@ export declare enum KdfAlgorithm {
1901
3155
  */
1902
3156
  UNSPECIFIED = 0,
1903
3157
  /**
1904
- * @generated from enum value: KDF_ALGORITHM_HKDF_SHA256 = 1;
3158
+ * @generated from enum value: KDF_ALGORITHM_HKDF_SHA256 = 100;
1905
3159
  */
1906
- HKDF_SHA256 = 1,
3160
+ HKDF_SHA256 = 100,
3161
+ /**
3162
+ * @generated from enum value: KDF_ALGORITHM_HKDF_SHA384 = 110;
3163
+ */
3164
+ HKDF_SHA384 = 110,
3165
+ /**
3166
+ * @generated from enum value: KDF_ALGORITHM_ARGON2ID = 200;
3167
+ */
3168
+ ARGON2ID = 200,
1907
3169
  /**
1908
- * @generated from enum value: KDF_ALGORITHM_ARGON2ID = 2;
3170
+ * @generated from enum value: KDF_ALGORITHM_PBKDF2_HMAC_SHA256 = 300;
1909
3171
  */
1910
- ARGON2ID = 2,
3172
+ PBKDF2_HMAC_SHA256 = 300,
1911
3173
  /**
1912
- * @generated from enum value: KDF_ALGORITHM_PBKDF2_HMAC_SHA256 = 3;
3174
+ * @generated from enum value: KDF_ALGORITHM_PBKDF2_HMAC_SHA512 = 310;
1913
3175
  */
1914
- PBKDF2_HMAC_SHA256 = 3,
3176
+ PBKDF2_HMAC_SHA512 = 310,
1915
3177
  /**
1916
- * @generated from enum value: KDF_ALGORITHM_PBKDF2_HMAC_SHA512 = 4;
3178
+ * @generated from enum value: KDF_ALGORITHM_JWA_CONCAT_KDF_SHA256 = 400;
1917
3179
  */
1918
- PBKDF2_HMAC_SHA512 = 4,
3180
+ JWA_CONCAT_KDF_SHA256 = 400,
1919
3181
  /**
1920
- * @generated from enum value: KDF_ALGORITHM_JWA_CONCAT_KDF_SHA256 = 5;
3182
+ * @generated from enum value: KDF_ALGORITHM_KMAC_256 = 500;
1921
3183
  */
1922
- JWA_CONCAT_KDF_SHA256 = 5
3184
+ KMAC_256 = 500
1923
3185
  }
1924
3186
  /**
1925
3187
  * Describes the enum reallyme.crypto.v1.KdfAlgorithm.
1926
3188
  */
1927
3189
  export declare const KdfAlgorithmSchema: GenEnum<KdfAlgorithm>;
1928
3190
  /**
1929
- * KeyWrapAlgorithm identifies key-wrapping algorithms.
3191
+ * Argon2idKdfVersion selects one immutable, reviewed resource-cost profile.
3192
+ * Numeric versions are stable API values shared by the direct SDK and
3193
+ * generated operation boundaries.
3194
+ *
3195
+ * @generated from enum reallyme.crypto.v1.Argon2idKdfVersion
3196
+ */
3197
+ export declare enum Argon2idKdfVersion {
3198
+ /**
3199
+ * @generated from enum value: ARGON2ID_KDF_VERSION_UNSPECIFIED = 0;
3200
+ */
3201
+ UNSPECIFIED = 0,
3202
+ /**
3203
+ * @generated from enum value: ARGON2ID_KDF_VERSION_V1 = 1;
3204
+ */
3205
+ V1 = 1,
3206
+ /**
3207
+ * @generated from enum value: ARGON2ID_KDF_VERSION_V2 = 2;
3208
+ */
3209
+ V2 = 2
3210
+ }
3211
+ /**
3212
+ * Describes the enum reallyme.crypto.v1.Argon2idKdfVersion.
3213
+ */
3214
+ export declare const Argon2idKdfVersionSchema: GenEnum<Argon2idKdfVersion>;
3215
+ /**
3216
+ * KeyWrapAlgorithm identifies key-wrapping algorithms. Values 100-199 are
3217
+ * AES-based key-wrapping suites.
1930
3218
  *
1931
3219
  * @generated from enum reallyme.crypto.v1.KeyWrapAlgorithm
1932
3220
  */
@@ -1936,9 +3224,17 @@ export declare enum KeyWrapAlgorithm {
1936
3224
  */
1937
3225
  UNSPECIFIED = 0,
1938
3226
  /**
1939
- * @generated from enum value: KEY_WRAP_ALGORITHM_AES_256_KW = 1;
3227
+ * @generated from enum value: KEY_WRAP_ALGORITHM_AES_128_KW = 100;
3228
+ */
3229
+ AES_128_KW = 100,
3230
+ /**
3231
+ * @generated from enum value: KEY_WRAP_ALGORITHM_AES_192_KW = 110;
1940
3232
  */
1941
- AES_256_KW = 1
3233
+ AES_192_KW = 110,
3234
+ /**
3235
+ * @generated from enum value: KEY_WRAP_ALGORITHM_AES_256_KW = 120;
3236
+ */
3237
+ AES_256_KW = 120
1942
3238
  }
1943
3239
  /**
1944
3240
  * Describes the enum reallyme.crypto.v1.KeyWrapAlgorithm.
@@ -2085,6 +3381,139 @@ export declare enum RsaPublicKeyDerEncoding {
2085
3381
  * Describes the enum reallyme.crypto.v1.RsaPublicKeyDerEncoding.
2086
3382
  */
2087
3383
  export declare const RsaPublicKeyDerEncodingSchema: GenEnum<RsaPublicKeyDerEncoding>;
3384
+ /**
3385
+ * PlatformKeyProvider identifies the platform owner of a non-exportable key.
3386
+ * Hardware residency is represented by security level, not by inventing a
3387
+ * separate cryptographic algorithm value.
3388
+ *
3389
+ * @generated from enum reallyme.crypto.v1.PlatformKeyProvider
3390
+ */
3391
+ export declare enum PlatformKeyProvider {
3392
+ /**
3393
+ * @generated from enum value: PLATFORM_KEY_PROVIDER_UNSPECIFIED = 0;
3394
+ */
3395
+ UNSPECIFIED = 0,
3396
+ /**
3397
+ * @generated from enum value: PLATFORM_KEY_PROVIDER_APPLE_KEYCHAIN = 100;
3398
+ */
3399
+ APPLE_KEYCHAIN = 100,
3400
+ /**
3401
+ * @generated from enum value: PLATFORM_KEY_PROVIDER_ANDROID_KEYSTORE = 200;
3402
+ */
3403
+ ANDROID_KEYSTORE = 200
3404
+ }
3405
+ /**
3406
+ * Describes the enum reallyme.crypto.v1.PlatformKeyProvider.
3407
+ */
3408
+ export declare const PlatformKeyProviderSchema: GenEnum<PlatformKeyProvider>;
3409
+ /**
3410
+ * PlatformKeySecurityLevel records requested and actual key residency. Actual
3411
+ * residency must be reported by the provider after generation or lookup; a
3412
+ * requested value is not evidence by itself.
3413
+ *
3414
+ * @generated from enum reallyme.crypto.v1.PlatformKeySecurityLevel
3415
+ */
3416
+ export declare enum PlatformKeySecurityLevel {
3417
+ /**
3418
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_UNSPECIFIED = 0;
3419
+ */
3420
+ UNSPECIFIED = 0,
3421
+ /**
3422
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_SOFTWARE = 1;
3423
+ */
3424
+ SOFTWARE = 1,
3425
+ /**
3426
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_TRUSTED_EXECUTION_ENVIRONMENT = 2;
3427
+ */
3428
+ TRUSTED_EXECUTION_ENVIRONMENT = 2,
3429
+ /**
3430
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_SECURE_ENCLAVE = 3;
3431
+ */
3432
+ SECURE_ENCLAVE = 3,
3433
+ /**
3434
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_STRONGBOX = 4;
3435
+ */
3436
+ STRONGBOX = 4
3437
+ }
3438
+ /**
3439
+ * Describes the enum reallyme.crypto.v1.PlatformKeySecurityLevel.
3440
+ */
3441
+ export declare const PlatformKeySecurityLevelSchema: GenEnum<PlatformKeySecurityLevel>;
3442
+ /**
3443
+ * @generated from enum reallyme.crypto.v1.PlatformKeyPurpose
3444
+ */
3445
+ export declare enum PlatformKeyPurpose {
3446
+ /**
3447
+ * @generated from enum value: PLATFORM_KEY_PURPOSE_UNSPECIFIED = 0;
3448
+ */
3449
+ UNSPECIFIED = 0,
3450
+ /**
3451
+ * @generated from enum value: PLATFORM_KEY_PURPOSE_SIGNING = 1;
3452
+ */
3453
+ SIGNING = 1,
3454
+ /**
3455
+ * @generated from enum value: PLATFORM_KEY_PURPOSE_KEY_AGREEMENT = 2;
3456
+ */
3457
+ KEY_AGREEMENT = 2
3458
+ }
3459
+ /**
3460
+ * Describes the enum reallyme.crypto.v1.PlatformKeyPurpose.
3461
+ */
3462
+ export declare const PlatformKeyPurposeSchema: GenEnum<PlatformKeyPurpose>;
3463
+ /**
3464
+ * @generated from enum reallyme.crypto.v1.AppleSecureEnclaveAccessPolicy
3465
+ */
3466
+ export declare enum AppleSecureEnclaveAccessPolicy {
3467
+ /**
3468
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_UNSPECIFIED = 0;
3469
+ */
3470
+ UNSPECIFIED = 0,
3471
+ /**
3472
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_PRIVATE_KEY_USAGE = 1;
3473
+ */
3474
+ PRIVATE_KEY_USAGE = 1,
3475
+ /**
3476
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_USER_PRESENCE = 2;
3477
+ */
3478
+ USER_PRESENCE = 2,
3479
+ /**
3480
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_BIOMETRY_ANY = 3;
3481
+ */
3482
+ BIOMETRY_ANY = 3,
3483
+ /**
3484
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_BIOMETRY_CURRENT_SET = 4;
3485
+ */
3486
+ BIOMETRY_CURRENT_SET = 4,
3487
+ /**
3488
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_DEVICE_PASSCODE = 5;
3489
+ */
3490
+ DEVICE_PASSCODE = 5
3491
+ }
3492
+ /**
3493
+ * Describes the enum reallyme.crypto.v1.AppleSecureEnclaveAccessPolicy.
3494
+ */
3495
+ export declare const AppleSecureEnclaveAccessPolicySchema: GenEnum<AppleSecureEnclaveAccessPolicy>;
3496
+ /**
3497
+ * @generated from enum reallyme.crypto.v1.AppleKeychainAccessibility
3498
+ */
3499
+ export declare enum AppleKeychainAccessibility {
3500
+ /**
3501
+ * @generated from enum value: APPLE_KEYCHAIN_ACCESSIBILITY_UNSPECIFIED = 0;
3502
+ */
3503
+ UNSPECIFIED = 0,
3504
+ /**
3505
+ * @generated from enum value: APPLE_KEYCHAIN_ACCESSIBILITY_WHEN_UNLOCKED_THIS_DEVICE_ONLY = 1;
3506
+ */
3507
+ WHEN_UNLOCKED_THIS_DEVICE_ONLY = 1,
3508
+ /**
3509
+ * @generated from enum value: APPLE_KEYCHAIN_ACCESSIBILITY_WHEN_PASSCODE_SET_THIS_DEVICE_ONLY = 2;
3510
+ */
3511
+ WHEN_PASSCODE_SET_THIS_DEVICE_ONLY = 2
3512
+ }
3513
+ /**
3514
+ * Describes the enum reallyme.crypto.v1.AppleKeychainAccessibility.
3515
+ */
3516
+ export declare const AppleKeychainAccessibilitySchema: GenEnum<AppleKeychainAccessibility>;
2088
3517
  /**
2089
3518
  * CryptoVerificationStatus avoids using a bare bool in protocol results where
2090
3519
  * "unset" and "false" need to remain distinguishable.
@@ -2150,21 +3579,3 @@ export declare enum CryptoProviderSupportStatus {
2150
3579
  * Describes the enum reallyme.crypto.v1.CryptoProviderSupportStatus.
2151
3580
  */
2152
3581
  export declare const CryptoProviderSupportStatusSchema: GenEnum<CryptoProviderSupportStatus>;
2153
- /**
2154
- * CryptoService is the transport schema for Connect-compatible adapters.
2155
- * Implementations must apply the same provider policy and size limits as the
2156
- * local process-proto and FFI lanes; the service definition does not authorize
2157
- * fallback to a different provider.
2158
- *
2159
- * @generated from service reallyme.crypto.v1.CryptoService
2160
- */
2161
- export declare const CryptoService: GenService<{
2162
- /**
2163
- * @generated from rpc reallyme.crypto.v1.CryptoService.Process
2164
- */
2165
- process: {
2166
- methodKind: "unary";
2167
- input: typeof CryptoServiceProcessRequestSchema;
2168
- output: typeof CryptoServiceProcessResponseSchema;
2169
- };
2170
- }>;