@reallyme/crypto 0.2.0 → 0.3.1

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 +1741 -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,243 @@ 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 arbitrary-length input keying material of at least 32
1666
+ * bytes. The selected KEM applies its registered HPKE DeriveKeyPair
1667
+ * procedure; callers must supply high-entropy bytes and must not normalize
1668
+ * the input to a suite-specific seed length outside the protocol owner.
1669
+ *
1670
+ * @generated from field: bytes input_key_material = 2;
1671
+ */
1672
+ inputKeyMaterial: Uint8Array;
1673
+ };
1674
+ /**
1675
+ * Describes the message reallyme.crypto.v1.CryptoHpkeDeriveKeyPairRequest.
1676
+ * Use `create(CryptoHpkeDeriveKeyPairRequestSchema)` to create a new message.
1677
+ */
1678
+ export declare const CryptoHpkeDeriveKeyPairRequestSchema: GenMessage<CryptoHpkeDeriveKeyPairRequest>;
1679
+ /**
1680
+ * @generated from message reallyme.crypto.v1.CryptoHpkeSenderExportRequest
1681
+ */
1682
+ export type CryptoHpkeSenderExportRequest = Message<"reallyme.crypto.v1.CryptoHpkeSenderExportRequest"> & {
1683
+ /**
1684
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1685
+ */
1686
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1687
+ /**
1688
+ * @generated from field: bytes recipient_public_key = 2;
1689
+ */
1690
+ recipientPublicKey: Uint8Array;
1691
+ /**
1692
+ * @generated from field: bytes info = 3;
1693
+ */
1694
+ info: Uint8Array;
1695
+ /**
1696
+ * @generated from field: bytes exporter_context = 4;
1697
+ */
1698
+ exporterContext: Uint8Array;
1699
+ /**
1700
+ * @generated from field: uint32 output_length = 5;
1701
+ */
1702
+ outputLength: number;
1703
+ };
1704
+ /**
1705
+ * Describes the message reallyme.crypto.v1.CryptoHpkeSenderExportRequest.
1706
+ * Use `create(CryptoHpkeSenderExportRequestSchema)` to create a new message.
1707
+ */
1708
+ export declare const CryptoHpkeSenderExportRequestSchema: GenMessage<CryptoHpkeSenderExportRequest>;
1709
+ /**
1710
+ * @generated from message reallyme.crypto.v1.CryptoHpkeReceiverExportRequest
1711
+ */
1712
+ export type CryptoHpkeReceiverExportRequest = Message<"reallyme.crypto.v1.CryptoHpkeReceiverExportRequest"> & {
1713
+ /**
1714
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1715
+ */
1716
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1717
+ /**
1718
+ * Secret-bearing HPKE recipient private key material.
1719
+ *
1720
+ * @generated from field: bytes recipient_secret_key = 2;
1721
+ */
1722
+ recipientSecretKey: Uint8Array;
1723
+ /**
1724
+ * @generated from field: bytes encapsulated_key = 3;
1725
+ */
1726
+ encapsulatedKey: Uint8Array;
1727
+ /**
1728
+ * @generated from field: bytes info = 4;
1729
+ */
1730
+ info: Uint8Array;
1731
+ /**
1732
+ * @generated from field: bytes exporter_context = 5;
1733
+ */
1734
+ exporterContext: Uint8Array;
1735
+ /**
1736
+ * @generated from field: uint32 output_length = 6;
1737
+ */
1738
+ outputLength: number;
1739
+ };
1740
+ /**
1741
+ * Describes the message reallyme.crypto.v1.CryptoHpkeReceiverExportRequest.
1742
+ * Use `create(CryptoHpkeReceiverExportRequestSchema)` to create a new message.
1743
+ */
1744
+ export declare const CryptoHpkeReceiverExportRequestSchema: GenMessage<CryptoHpkeReceiverExportRequest>;
1745
+ /**
1746
+ * @generated from message reallyme.crypto.v1.CryptoHpkeSenderExportResult
1747
+ */
1748
+ export type CryptoHpkeSenderExportResult = Message<"reallyme.crypto.v1.CryptoHpkeSenderExportResult"> & {
1749
+ /**
1750
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1751
+ */
1752
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1753
+ /**
1754
+ * @generated from field: bytes encapsulated_key = 2;
1755
+ */
1756
+ encapsulatedKey: Uint8Array;
1757
+ /**
1758
+ * Secret-bearing HPKE exporter output.
1759
+ *
1760
+ * @generated from field: bytes exporter_secret = 3;
1761
+ */
1762
+ exporterSecret: Uint8Array;
1763
+ };
1764
+ /**
1765
+ * Describes the message reallyme.crypto.v1.CryptoHpkeSenderExportResult.
1766
+ * Use `create(CryptoHpkeSenderExportResultSchema)` to create a new message.
1767
+ */
1768
+ export declare const CryptoHpkeSenderExportResultSchema: GenMessage<CryptoHpkeSenderExportResult>;
1769
+ /**
1770
+ * @generated from message reallyme.crypto.v1.CryptoHpkeReceiverExportResult
1771
+ */
1772
+ export type CryptoHpkeReceiverExportResult = Message<"reallyme.crypto.v1.CryptoHpkeReceiverExportResult"> & {
1773
+ /**
1774
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1775
+ */
1776
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1777
+ /**
1778
+ * Secret-bearing HPKE exporter output.
1779
+ *
1780
+ * @generated from field: bytes exporter_secret = 2;
1781
+ */
1782
+ exporterSecret: Uint8Array;
1783
+ };
1784
+ /**
1785
+ * Describes the message reallyme.crypto.v1.CryptoHpkeReceiverExportResult.
1786
+ * Use `create(CryptoHpkeReceiverExportResultSchema)` to create a new message.
1787
+ */
1788
+ export declare const CryptoHpkeReceiverExportResultSchema: GenMessage<CryptoHpkeReceiverExportResult>;
1789
+ /**
1790
+ * @generated from message reallyme.crypto.v1.CryptoHpkePskSealRequest
1791
+ */
1792
+ export type CryptoHpkePskSealRequest = Message<"reallyme.crypto.v1.CryptoHpkePskSealRequest"> & {
1793
+ /**
1794
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1795
+ */
1796
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1797
+ /**
1798
+ * @generated from field: bytes recipient_public_key = 2;
1799
+ */
1800
+ recipientPublicKey: Uint8Array;
1801
+ /**
1802
+ * @generated from field: bytes info = 3;
1803
+ */
1804
+ info: Uint8Array;
1805
+ /**
1806
+ * @generated from field: bytes aad = 4;
1807
+ */
1808
+ aad: Uint8Array;
1809
+ /**
1810
+ * Plaintext may contain secret or PII-bearing application data.
1811
+ *
1812
+ * @generated from field: bytes plaintext = 5;
1813
+ */
1814
+ plaintext: Uint8Array;
1815
+ /**
1816
+ * Secret-bearing, high-entropy pre-shared key. Passwords are not valid HPKE
1817
+ * PSKs and must not be passed through this field.
1818
+ *
1819
+ * @generated from field: bytes psk = 6;
1820
+ */
1821
+ psk: Uint8Array;
1822
+ /**
1823
+ * @generated from field: bytes psk_id = 7;
1824
+ */
1825
+ pskId: Uint8Array;
1826
+ };
1827
+ /**
1828
+ * Describes the message reallyme.crypto.v1.CryptoHpkePskSealRequest.
1829
+ * Use `create(CryptoHpkePskSealRequestSchema)` to create a new message.
1830
+ */
1831
+ export declare const CryptoHpkePskSealRequestSchema: GenMessage<CryptoHpkePskSealRequest>;
1832
+ /**
1833
+ * @generated from message reallyme.crypto.v1.CryptoHpkePskOpenRequest
1834
+ */
1835
+ export type CryptoHpkePskOpenRequest = Message<"reallyme.crypto.v1.CryptoHpkePskOpenRequest"> & {
1836
+ /**
1837
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1838
+ */
1839
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1840
+ /**
1841
+ * Secret-bearing HPKE recipient private key material.
1842
+ *
1843
+ * @generated from field: bytes recipient_secret_key = 2;
1844
+ */
1845
+ recipientSecretKey: Uint8Array;
1846
+ /**
1847
+ * @generated from field: bytes encapsulated_key = 3;
1848
+ */
1849
+ encapsulatedKey: Uint8Array;
1850
+ /**
1851
+ * @generated from field: bytes info = 4;
1852
+ */
1853
+ info: Uint8Array;
1854
+ /**
1855
+ * @generated from field: bytes aad = 5;
1856
+ */
1857
+ aad: Uint8Array;
1858
+ /**
1859
+ * @generated from field: bytes ciphertext = 6;
1860
+ */
1861
+ ciphertext: Uint8Array;
1862
+ /**
1863
+ * Secret-bearing, high-entropy pre-shared key. Passwords are not valid HPKE
1864
+ * PSKs and must not be passed through this field.
1865
+ *
1866
+ * @generated from field: bytes psk = 7;
1867
+ */
1868
+ psk: Uint8Array;
1869
+ /**
1870
+ * @generated from field: bytes psk_id = 8;
1871
+ */
1872
+ pskId: Uint8Array;
1873
+ };
1874
+ /**
1875
+ * Describes the message reallyme.crypto.v1.CryptoHpkePskOpenRequest.
1876
+ * Use `create(CryptoHpkePskOpenRequestSchema)` to create a new message.
1877
+ */
1878
+ export declare const CryptoHpkePskOpenRequestSchema: GenMessage<CryptoHpkePskOpenRequest>;
1097
1879
  /**
1098
1880
  * CryptoKeyPair is the protobuf boundary envelope for generated or derived
1099
1881
  * keypairs. Secret-key bytes are included only for APIs whose public facade
@@ -1177,255 +1959,536 @@ export type CryptoHpkeSealedMessage = Message<"reallyme.crypto.v1.CryptoHpkeSeal
1177
1959
  */
1178
1960
  export declare const CryptoHpkeSealedMessageSchema: GenMessage<CryptoHpkeSealedMessage>;
1179
1961
  /**
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.
1962
+ * @generated from message reallyme.crypto.v1.ApplePlatformKeyPolicy
1963
+ */
1964
+ export type ApplePlatformKeyPolicy = Message<"reallyme.crypto.v1.ApplePlatformKeyPolicy"> & {
1965
+ /**
1966
+ * @generated from field: reallyme.crypto.v1.AppleSecureEnclaveAccessPolicy access_policy = 1;
1967
+ */
1968
+ accessPolicy: AppleSecureEnclaveAccessPolicy;
1969
+ /**
1970
+ * @generated from field: reallyme.crypto.v1.AppleKeychainAccessibility accessibility = 2;
1971
+ */
1972
+ accessibility: AppleKeychainAccessibility;
1973
+ };
1974
+ /**
1975
+ * Describes the message reallyme.crypto.v1.ApplePlatformKeyPolicy.
1976
+ * Use `create(ApplePlatformKeyPolicySchema)` to create a new message.
1977
+ */
1978
+ export declare const ApplePlatformKeyPolicySchema: GenMessage<ApplePlatformKeyPolicy>;
1979
+ /**
1980
+ * @generated from message reallyme.crypto.v1.AndroidPlatformKeyPolicy
1981
+ */
1982
+ export type AndroidPlatformKeyPolicy = Message<"reallyme.crypto.v1.AndroidPlatformKeyPolicy"> & {
1983
+ /**
1984
+ * When present, this value must match
1985
+ * CryptoPlatformKeyGenerateRequest.requested_security_level.
1986
+ *
1987
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel requested_security_level = 1;
1988
+ */
1989
+ requestedSecurityLevel: PlatformKeySecurityLevel;
1990
+ /**
1991
+ * @generated from field: bool user_authentication_required = 2;
1992
+ */
1993
+ userAuthenticationRequired: boolean;
1994
+ /**
1995
+ * @generated from field: uint32 user_authentication_timeout_seconds = 3;
1996
+ */
1997
+ userAuthenticationTimeoutSeconds: number;
1998
+ /**
1999
+ * @generated from field: bool allow_biometric_strong = 4;
2000
+ */
2001
+ allowBiometricStrong: boolean;
2002
+ /**
2003
+ * @generated from field: bool allow_device_credential = 5;
2004
+ */
2005
+ allowDeviceCredential: boolean;
2006
+ /**
2007
+ * @generated from field: bool invalidated_by_biometric_enrollment = 6;
2008
+ */
2009
+ invalidatedByBiometricEnrollment: boolean;
2010
+ /**
2011
+ * @generated from field: bool user_confirmation_required = 7;
2012
+ */
2013
+ userConfirmationRequired: boolean;
2014
+ /**
2015
+ * @generated from field: bool unlocked_device_required = 8;
2016
+ */
2017
+ unlockedDeviceRequired: boolean;
2018
+ /**
2019
+ * @generated from field: bytes attestation_challenge = 9;
2020
+ */
2021
+ attestationChallenge: Uint8Array;
2022
+ };
2023
+ /**
2024
+ * Describes the message reallyme.crypto.v1.AndroidPlatformKeyPolicy.
2025
+ * Use `create(AndroidPlatformKeyPolicySchema)` to create a new message.
2026
+ */
2027
+ export declare const AndroidPlatformKeyPolicySchema: GenMessage<AndroidPlatformKeyPolicy>;
2028
+ /**
2029
+ * @generated from message reallyme.crypto.v1.PlatformKeyPolicy
2030
+ */
2031
+ export type PlatformKeyPolicy = Message<"reallyme.crypto.v1.PlatformKeyPolicy"> & {
2032
+ /**
2033
+ * @generated from oneof reallyme.crypto.v1.PlatformKeyPolicy.policy
2034
+ */
2035
+ policy: {
2036
+ /**
2037
+ * @generated from field: reallyme.crypto.v1.ApplePlatformKeyPolicy apple = 1;
2038
+ */
2039
+ value: ApplePlatformKeyPolicy;
2040
+ case: "apple";
2041
+ } | {
2042
+ /**
2043
+ * @generated from field: reallyme.crypto.v1.AndroidPlatformKeyPolicy android = 2;
2044
+ */
2045
+ value: AndroidPlatformKeyPolicy;
2046
+ case: "android";
2047
+ } | {
2048
+ case: undefined;
2049
+ value?: undefined;
2050
+ };
2051
+ };
2052
+ /**
2053
+ * Describes the message reallyme.crypto.v1.PlatformKeyPolicy.
2054
+ * Use `create(PlatformKeyPolicySchema)` to create a new message.
2055
+ */
2056
+ export declare const PlatformKeyPolicySchema: GenMessage<PlatformKeyPolicy>;
2057
+ /**
2058
+ * CryptoPlatformPrivateKeyHandle is an opaque, privacy-sensitive reference to
2059
+ * platform-resident private key material. It is not interchangeable with
2060
+ * raw-byte `secret_key` fields and must never contain exportable private key
2061
+ * material.
1183
2062
  *
1184
- * @generated from message reallyme.crypto.v1.CryptoVerificationResult
2063
+ * @generated from message reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle
1185
2064
  */
1186
- export type CryptoVerificationResult = Message<"reallyme.crypto.v1.CryptoVerificationResult"> & {
2065
+ export type CryptoPlatformPrivateKeyHandle = Message<"reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle"> & {
1187
2066
  /**
1188
- * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
2067
+ * @generated from field: reallyme.crypto.v1.PlatformKeyProvider provider = 1;
2068
+ */
2069
+ provider: PlatformKeyProvider;
2070
+ /**
2071
+ * @generated from field: reallyme.crypto.v1.PlatformKeyPurpose purpose = 2;
2072
+ */
2073
+ purpose: PlatformKeyPurpose;
2074
+ /**
2075
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 3;
1189
2076
  */
1190
2077
  algorithm?: CryptoAlgorithmIdentifier | undefined;
1191
2078
  /**
1192
- * @generated from field: reallyme.crypto.v1.CryptoVerificationStatus status = 2;
2079
+ * @generated from field: bytes opaque_handle = 4;
1193
2080
  */
1194
- status: CryptoVerificationStatus;
2081
+ opaqueHandle: Uint8Array;
1195
2082
  /**
1196
- * @generated from field: reallyme.crypto.v1.CryptoError error = 3;
2083
+ * @generated from field: bytes public_key = 5;
1197
2084
  */
1198
- error?: CryptoError | undefined;
2085
+ publicKey: Uint8Array;
2086
+ /**
2087
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel actual_security_level = 6;
2088
+ */
2089
+ actualSecurityLevel: PlatformKeySecurityLevel;
2090
+ /**
2091
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel requested_security_level = 7;
2092
+ */
2093
+ requestedSecurityLevel: PlatformKeySecurityLevel;
1199
2094
  };
1200
2095
  /**
1201
- * Describes the message reallyme.crypto.v1.CryptoVerificationResult.
1202
- * Use `create(CryptoVerificationResultSchema)` to create a new message.
2096
+ * Describes the message reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle.
2097
+ * Use `create(CryptoPlatformPrivateKeyHandleSchema)` to create a new message.
1203
2098
  */
1204
- export declare const CryptoVerificationResultSchema: GenMessage<CryptoVerificationResult>;
2099
+ export declare const CryptoPlatformPrivateKeyHandleSchema: GenMessage<CryptoPlatformPrivateKeyHandle>;
1205
2100
  /**
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".
2101
+ * Platform-key operations in 0.3.0 are limited to P-256 ECDSA signing and
2102
+ * P-256 ECDH. Providers must reject an algorithm/purpose mismatch and must
2103
+ * report the actual security level rather than treating this request as
2104
+ * evidence that hardware residency was obtained.
1209
2105
  *
1210
- * @generated from message reallyme.crypto.v1.CryptoProviderCapability
2106
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyGenerateRequest
1211
2107
  */
1212
- export type CryptoProviderCapability = Message<"reallyme.crypto.v1.CryptoProviderCapability"> & {
2108
+ export type CryptoPlatformKeyGenerateRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyGenerateRequest"> & {
1213
2109
  /**
1214
- * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
2110
+ * @generated from field: reallyme.crypto.v1.PlatformKeyProvider provider = 1;
2111
+ */
2112
+ provider: PlatformKeyProvider;
2113
+ /**
2114
+ * @generated from field: reallyme.crypto.v1.PlatformKeyPurpose purpose = 2;
2115
+ */
2116
+ purpose: PlatformKeyPurpose;
2117
+ /**
2118
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 3;
1215
2119
  */
1216
2120
  algorithm?: CryptoAlgorithmIdentifier | undefined;
1217
2121
  /**
1218
- * @generated from field: reallyme.crypto.v1.CryptoAlgorithmFamily family = 2;
2122
+ * @generated from field: bytes application_tag = 4;
1219
2123
  */
1220
- family: CryptoAlgorithmFamily;
2124
+ applicationTag: Uint8Array;
1221
2125
  /**
1222
- * @generated from field: reallyme.crypto.v1.CryptoProviderSupportStatus status = 3;
2126
+ * @generated from field: reallyme.crypto.v1.PlatformKeyPolicy policy = 5;
1223
2127
  */
1224
- status: CryptoProviderSupportStatus;
2128
+ policy?: PlatformKeyPolicy | undefined;
1225
2129
  /**
1226
- * @generated from field: repeated string provider_names = 4;
2130
+ * @generated from field: bool overwrite_existing = 6;
1227
2131
  */
1228
- providerNames: string[];
2132
+ overwriteExisting: boolean;
1229
2133
  /**
1230
- * @generated from field: bool uses_rust = 5;
2134
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel requested_security_level = 7;
1231
2135
  */
1232
- usesRust: boolean;
2136
+ requestedSecurityLevel: PlatformKeySecurityLevel;
1233
2137
  };
1234
2138
  /**
1235
- * Describes the message reallyme.crypto.v1.CryptoProviderCapability.
1236
- * Use `create(CryptoProviderCapabilitySchema)` to create a new message.
2139
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyGenerateRequest.
2140
+ * Use `create(CryptoPlatformKeyGenerateRequestSchema)` to create a new message.
1237
2141
  */
1238
- export declare const CryptoProviderCapabilitySchema: GenMessage<CryptoProviderCapability>;
2142
+ export declare const CryptoPlatformKeyGenerateRequestSchema: GenMessage<CryptoPlatformKeyGenerateRequest>;
1239
2143
  /**
1240
- * @generated from message reallyme.crypto.v1.CryptoProviderCapabilitySet
2144
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyGenerateResult
1241
2145
  */
1242
- export type CryptoProviderCapabilitySet = Message<"reallyme.crypto.v1.CryptoProviderCapabilitySet"> & {
2146
+ export type CryptoPlatformKeyGenerateResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyGenerateResult"> & {
1243
2147
  /**
1244
- * @generated from field: repeated reallyme.crypto.v1.CryptoProviderCapability capabilities = 1;
2148
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1245
2149
  */
1246
- capabilities: CryptoProviderCapability[];
2150
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
1247
2151
  };
1248
2152
  /**
1249
- * Describes the message reallyme.crypto.v1.CryptoProviderCapabilitySet.
1250
- * Use `create(CryptoProviderCapabilitySetSchema)` to create a new message.
2153
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyGenerateResult.
2154
+ * Use `create(CryptoPlatformKeyGenerateResultSchema)` to create a new message.
1251
2155
  */
1252
- export declare const CryptoProviderCapabilitySetSchema: GenMessage<CryptoProviderCapabilitySet>;
2156
+ export declare const CryptoPlatformKeyGenerateResultSchema: GenMessage<CryptoPlatformKeyGenerateResult>;
1253
2157
  /**
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
2158
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyRequest
1259
2159
  */
1260
- export type JsonWebKey = Message<"reallyme.crypto.v1.JsonWebKey"> & {
2160
+ export type CryptoPlatformKeyGetPublicKeyRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyRequest"> & {
1261
2161
  /**
1262
- * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
2162
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1263
2163
  */
1264
- algorithm?: CryptoAlgorithmIdentifier | undefined;
2164
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
2165
+ };
2166
+ /**
2167
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyRequest.
2168
+ * Use `create(CryptoPlatformKeyGetPublicKeyRequestSchema)` to create a new message.
2169
+ */
2170
+ export declare const CryptoPlatformKeyGetPublicKeyRequestSchema: GenMessage<CryptoPlatformKeyGetPublicKeyRequest>;
2171
+ /**
2172
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyResult
2173
+ */
2174
+ export type CryptoPlatformKeyGetPublicKeyResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyResult"> & {
2175
+ /**
2176
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
2177
+ */
2178
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
1265
2179
  /**
1266
2180
  * @generated from field: bytes public_key = 2;
1267
2181
  */
1268
2182
  publicKey: Uint8Array;
2183
+ };
2184
+ /**
2185
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyGetPublicKeyResult.
2186
+ * Use `create(CryptoPlatformKeyGetPublicKeyResultSchema)` to create a new message.
2187
+ */
2188
+ export declare const CryptoPlatformKeyGetPublicKeyResultSchema: GenMessage<CryptoPlatformKeyGetPublicKeyResult>;
2189
+ /**
2190
+ * @generated from message reallyme.crypto.v1.CryptoPlatformSignatureSignRequest
2191
+ */
2192
+ export type CryptoPlatformSignatureSignRequest = Message<"reallyme.crypto.v1.CryptoPlatformSignatureSignRequest"> & {
1269
2193
  /**
1270
- * @generated from field: bytes canonical_jcs = 3;
2194
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1271
2195
  */
1272
- canonicalJcs: Uint8Array;
2196
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
2197
+ /**
2198
+ * @generated from field: bytes message = 2;
2199
+ */
2200
+ message: Uint8Array;
2201
+ /**
2202
+ * @generated from field: string authentication_prompt = 3;
2203
+ */
2204
+ authenticationPrompt: string;
1273
2205
  };
1274
2206
  /**
1275
- * Describes the message reallyme.crypto.v1.JsonWebKey.
1276
- * Use `create(JsonWebKeySchema)` to create a new message.
2207
+ * Describes the message reallyme.crypto.v1.CryptoPlatformSignatureSignRequest.
2208
+ * Use `create(CryptoPlatformSignatureSignRequestSchema)` to create a new message.
1277
2209
  */
1278
- export declare const JsonWebKeySchema: GenMessage<JsonWebKey>;
2210
+ export declare const CryptoPlatformSignatureSignRequestSchema: GenMessage<CryptoPlatformSignatureSignRequest>;
1279
2211
  /**
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
2212
+ * @generated from message reallyme.crypto.v1.CryptoPlatformSignatureSignResult
1284
2213
  */
1285
- export type JsonWebKeySet = Message<"reallyme.crypto.v1.JsonWebKeySet"> & {
2214
+ export type CryptoPlatformSignatureSignResult = Message<"reallyme.crypto.v1.CryptoPlatformSignatureSignResult"> & {
1286
2215
  /**
1287
- * @generated from field: repeated reallyme.crypto.v1.JsonWebKey keys = 1;
2216
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1288
2217
  */
1289
- keys: JsonWebKey[];
2218
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
2219
+ /**
2220
+ * @generated from field: bytes signature = 2;
2221
+ */
2222
+ signature: Uint8Array;
1290
2223
  };
1291
2224
  /**
1292
- * Describes the message reallyme.crypto.v1.JsonWebKeySet.
1293
- * Use `create(JsonWebKeySetSchema)` to create a new message.
2225
+ * Describes the message reallyme.crypto.v1.CryptoPlatformSignatureSignResult.
2226
+ * Use `create(CryptoPlatformSignatureSignResultSchema)` to create a new message.
1294
2227
  */
1295
- export declare const JsonWebKeySetSchema: GenMessage<JsonWebKeySet>;
2228
+ export declare const CryptoPlatformSignatureSignResultSchema: GenMessage<CryptoPlatformSignatureSignResult>;
1296
2229
  /**
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
2230
+ * @generated from message reallyme.crypto.v1.CryptoPlatformSignatureVerifyRequest
1301
2231
  */
1302
- export declare enum CryptoProtoResultStatus {
2232
+ export type CryptoPlatformSignatureVerifyRequest = Message<"reallyme.crypto.v1.CryptoPlatformSignatureVerifyRequest"> & {
1303
2233
  /**
1304
- * @generated from enum value: CRYPTO_PROTO_RESULT_STATUS_UNSPECIFIED = 0;
2234
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1305
2235
  */
1306
- UNSPECIFIED = 0,
2236
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1307
2237
  /**
1308
- * @generated from enum value: CRYPTO_PROTO_RESULT_STATUS_RESULT = 1;
2238
+ * @generated from field: bytes signature = 2;
1309
2239
  */
1310
- RESULT = 1,
2240
+ signature: Uint8Array;
1311
2241
  /**
1312
- * @generated from enum value: CRYPTO_PROTO_RESULT_STATUS_CRYPTO_ERROR = 2;
2242
+ * @generated from field: bytes message = 3;
1313
2243
  */
1314
- CRYPTO_ERROR = 2
1315
- }
2244
+ message: Uint8Array;
2245
+ /**
2246
+ * @generated from field: bytes public_key = 4;
2247
+ */
2248
+ publicKey: Uint8Array;
2249
+ };
1316
2250
  /**
1317
- * Describes the enum reallyme.crypto.v1.CryptoProtoResultStatus.
2251
+ * Describes the message reallyme.crypto.v1.CryptoPlatformSignatureVerifyRequest.
2252
+ * Use `create(CryptoPlatformSignatureVerifyRequestSchema)` to create a new message.
1318
2253
  */
1319
- export declare const CryptoProtoResultStatusSchema: GenEnum<CryptoProtoResultStatus>;
2254
+ export declare const CryptoPlatformSignatureVerifyRequestSchema: GenMessage<CryptoPlatformSignatureVerifyRequest>;
1320
2255
  /**
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
2256
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretRequest
1326
2257
  */
1327
- export declare enum CryptoOperation {
2258
+ export type CryptoPlatformKeyAgreementDeriveSharedSecretRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretRequest"> & {
1328
2259
  /**
1329
- * @generated from enum value: CRYPTO_OPERATION_UNSPECIFIED = 0;
2260
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1330
2261
  */
1331
- UNSPECIFIED = 0,
2262
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
1332
2263
  /**
1333
- * @generated from enum value: CRYPTO_OPERATION_HASH = 1;
2264
+ * @generated from field: bytes peer_public_key = 2;
1334
2265
  */
1335
- HASH = 1,
1336
- /**
1337
- * @generated from enum value: CRYPTO_OPERATION_AEAD_SEAL = 2;
1338
- */
1339
- AEAD_SEAL = 2,
2266
+ peerPublicKey: Uint8Array;
2267
+ };
2268
+ /**
2269
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretRequest.
2270
+ * Use `create(CryptoPlatformKeyAgreementDeriveSharedSecretRequestSchema)` to create a new message.
2271
+ */
2272
+ export declare const CryptoPlatformKeyAgreementDeriveSharedSecretRequestSchema: GenMessage<CryptoPlatformKeyAgreementDeriveSharedSecretRequest>;
2273
+ /**
2274
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretResult
2275
+ */
2276
+ export type CryptoPlatformKeyAgreementDeriveSharedSecretResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretResult"> & {
1340
2277
  /**
1341
- * @generated from enum value: CRYPTO_OPERATION_AEAD_OPEN = 3;
2278
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1342
2279
  */
1343
- AEAD_OPEN = 3,
2280
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1344
2281
  /**
1345
- * @generated from enum value: CRYPTO_OPERATION_MAC_AUTHENTICATE = 4;
2282
+ * @generated from field: bytes shared_secret = 2;
1346
2283
  */
1347
- MAC_AUTHENTICATE = 4,
2284
+ sharedSecret: Uint8Array;
2285
+ };
2286
+ /**
2287
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAgreementDeriveSharedSecretResult.
2288
+ * Use `create(CryptoPlatformKeyAgreementDeriveSharedSecretResultSchema)` to create a new message.
2289
+ */
2290
+ export declare const CryptoPlatformKeyAgreementDeriveSharedSecretResultSchema: GenMessage<CryptoPlatformKeyAgreementDeriveSharedSecretResult>;
2291
+ /**
2292
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyDeleteRequest
2293
+ */
2294
+ export type CryptoPlatformKeyDeleteRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyDeleteRequest"> & {
1348
2295
  /**
1349
- * @generated from enum value: CRYPTO_OPERATION_MAC_VERIFY = 5;
2296
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1350
2297
  */
1351
- MAC_VERIFY = 5,
2298
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
2299
+ };
2300
+ /**
2301
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyDeleteRequest.
2302
+ * Use `create(CryptoPlatformKeyDeleteRequestSchema)` to create a new message.
2303
+ */
2304
+ export declare const CryptoPlatformKeyDeleteRequestSchema: GenMessage<CryptoPlatformKeyDeleteRequest>;
2305
+ /**
2306
+ * Deletion is idempotent: deleting a well-formed handle whose key is already
2307
+ * absent succeeds. Malformed handles and provider mismatches remain typed
2308
+ * failures. The result echoes no handle so the boundary does not create an
2309
+ * unnecessary additional copy of a persistent key identifier.
2310
+ *
2311
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyDeleteResult
2312
+ */
2313
+ export type CryptoPlatformKeyDeleteResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyDeleteResult"> & {};
2314
+ /**
2315
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyDeleteResult.
2316
+ * Use `create(CryptoPlatformKeyDeleteResultSchema)` to create a new message.
2317
+ */
2318
+ export declare const CryptoPlatformKeyDeleteResultSchema: GenMessage<CryptoPlatformKeyDeleteResult>;
2319
+ /**
2320
+ * Attestation is an explicit evidence operation. A provider or security-level
2321
+ * enum value alone never proves that a key is hardware-backed.
2322
+ *
2323
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAttestRequest
2324
+ */
2325
+ export type CryptoPlatformKeyAttestRequest = Message<"reallyme.crypto.v1.CryptoPlatformKeyAttestRequest"> & {
1352
2326
  /**
1353
- * @generated from enum value: CRYPTO_OPERATION_SIGNATURE_GENERATE_KEY_PAIR = 10;
2327
+ * @generated from field: reallyme.crypto.v1.CryptoPlatformPrivateKeyHandle private_key_handle = 1;
1354
2328
  */
1355
- SIGNATURE_GENERATE_KEY_PAIR = 10,
2329
+ privateKeyHandle?: CryptoPlatformPrivateKeyHandle | undefined;
1356
2330
  /**
1357
- * @generated from enum value: CRYPTO_OPERATION_SIGNATURE_DERIVE_KEY_PAIR = 11;
2331
+ * @generated from field: bytes challenge = 2;
1358
2332
  */
1359
- SIGNATURE_DERIVE_KEY_PAIR = 11,
2333
+ challenge: Uint8Array;
2334
+ };
2335
+ /**
2336
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAttestRequest.
2337
+ * Use `create(CryptoPlatformKeyAttestRequestSchema)` to create a new message.
2338
+ */
2339
+ export declare const CryptoPlatformKeyAttestRequestSchema: GenMessage<CryptoPlatformKeyAttestRequest>;
2340
+ /**
2341
+ * A wrapper keeps each certificate in a separately hardened generated owner
2342
+ * instead of retaining a nested byte-vector with ambiguous cleanup semantics.
2343
+ *
2344
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAttestationCertificate
2345
+ */
2346
+ export type CryptoPlatformKeyAttestationCertificate = Message<"reallyme.crypto.v1.CryptoPlatformKeyAttestationCertificate"> & {
1360
2347
  /**
1361
- * @generated from enum value: CRYPTO_OPERATION_SIGNATURE_SIGN = 12;
2348
+ * @generated from field: bytes certificate_der = 1;
1362
2349
  */
1363
- SIGNATURE_SIGN = 12,
2350
+ certificateDer: Uint8Array;
2351
+ };
2352
+ /**
2353
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAttestationCertificate.
2354
+ * Use `create(CryptoPlatformKeyAttestationCertificateSchema)` to create a new message.
2355
+ */
2356
+ export declare const CryptoPlatformKeyAttestationCertificateSchema: GenMessage<CryptoPlatformKeyAttestationCertificate>;
2357
+ /**
2358
+ * @generated from message reallyme.crypto.v1.CryptoPlatformKeyAttestResult
2359
+ */
2360
+ export type CryptoPlatformKeyAttestResult = Message<"reallyme.crypto.v1.CryptoPlatformKeyAttestResult"> & {
1364
2361
  /**
1365
- * @generated from enum value: CRYPTO_OPERATION_SIGNATURE_VERIFY = 13;
2362
+ * @generated from field: repeated reallyme.crypto.v1.CryptoPlatformKeyAttestationCertificate certificate_chain = 1;
1366
2363
  */
1367
- SIGNATURE_VERIFY = 13,
2364
+ certificateChain: CryptoPlatformKeyAttestationCertificate[];
1368
2365
  /**
1369
- * @generated from enum value: CRYPTO_OPERATION_BIP340_SCHNORR_SIGN = 14;
2366
+ * @generated from field: reallyme.crypto.v1.PlatformKeySecurityLevel actual_security_level = 2;
1370
2367
  */
1371
- BIP340_SCHNORR_SIGN = 14,
2368
+ actualSecurityLevel: PlatformKeySecurityLevel;
2369
+ };
2370
+ /**
2371
+ * Describes the message reallyme.crypto.v1.CryptoPlatformKeyAttestResult.
2372
+ * Use `create(CryptoPlatformKeyAttestResultSchema)` to create a new message.
2373
+ */
2374
+ export declare const CryptoPlatformKeyAttestResultSchema: GenMessage<CryptoPlatformKeyAttestResult>;
2375
+ /**
2376
+ * CryptoVerificationResult is for protocol layers that need a stable,
2377
+ * serializable verification status. Ordinary facade calls should continue to
2378
+ * fail closed with typed errors.
2379
+ *
2380
+ * @generated from message reallyme.crypto.v1.CryptoVerificationResult
2381
+ */
2382
+ export type CryptoVerificationResult = Message<"reallyme.crypto.v1.CryptoVerificationResult"> & {
1372
2383
  /**
1373
- * @generated from enum value: CRYPTO_OPERATION_RSA_VERIFY = 15;
2384
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1374
2385
  */
1375
- RSA_VERIFY = 15,
2386
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1376
2387
  /**
1377
- * @generated from enum value: CRYPTO_OPERATION_KEY_AGREEMENT_DERIVE_SHARED_SECRET = 20;
2388
+ * @generated from field: reallyme.crypto.v1.CryptoVerificationStatus status = 2;
1378
2389
  */
1379
- KEY_AGREEMENT_DERIVE_SHARED_SECRET = 20,
2390
+ status: CryptoVerificationStatus;
1380
2391
  /**
1381
- * @generated from enum value: CRYPTO_OPERATION_KEY_AGREEMENT_DERIVE_KEY_PAIR = 21;
2392
+ * @generated from field: reallyme.crypto.v1.CryptoError error = 3;
1382
2393
  */
1383
- KEY_AGREEMENT_DERIVE_KEY_PAIR = 21,
2394
+ error?: CryptoError | undefined;
2395
+ };
2396
+ /**
2397
+ * Describes the message reallyme.crypto.v1.CryptoVerificationResult.
2398
+ * Use `create(CryptoVerificationResultSchema)` to create a new message.
2399
+ */
2400
+ export declare const CryptoVerificationResultSchema: GenMessage<CryptoVerificationResult>;
2401
+ /**
2402
+ * CryptoProviderCapability describes the package/provider posture for one
2403
+ * algorithm in one published lane. Provider names are non-secret identifiers
2404
+ * such as "CryptoKit", "BouncyCastle", or "ReallyMe Rust WASM".
2405
+ *
2406
+ * @generated from message reallyme.crypto.v1.CryptoProviderCapability
2407
+ */
2408
+ export type CryptoProviderCapability = Message<"reallyme.crypto.v1.CryptoProviderCapability"> & {
1384
2409
  /**
1385
- * @generated from enum value: CRYPTO_OPERATION_KEM_GENERATE_KEY_PAIR = 30;
2410
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1386
2411
  */
1387
- KEM_GENERATE_KEY_PAIR = 30,
2412
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1388
2413
  /**
1389
- * @generated from enum value: CRYPTO_OPERATION_KEM_ENCAPSULATE = 31;
2414
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmFamily family = 2;
1390
2415
  */
1391
- KEM_ENCAPSULATE = 31,
2416
+ family: CryptoAlgorithmFamily;
1392
2417
  /**
1393
- * @generated from enum value: CRYPTO_OPERATION_KEM_DECAPSULATE = 32;
2418
+ * @generated from field: reallyme.crypto.v1.CryptoProviderSupportStatus status = 3;
1394
2419
  */
1395
- KEM_DECAPSULATE = 32,
2420
+ status: CryptoProviderSupportStatus;
1396
2421
  /**
1397
- * @generated from enum value: CRYPTO_OPERATION_HKDF_DERIVE = 40;
2422
+ * @generated from field: repeated string provider_names = 4;
1398
2423
  */
1399
- HKDF_DERIVE = 40,
2424
+ providerNames: string[];
1400
2425
  /**
1401
- * @generated from enum value: CRYPTO_OPERATION_KDF_DERIVE_KEY = 41;
2426
+ * @generated from field: bool uses_rust = 5;
1402
2427
  */
1403
- KDF_DERIVE_KEY = 41,
2428
+ usesRust: boolean;
2429
+ };
2430
+ /**
2431
+ * Describes the message reallyme.crypto.v1.CryptoProviderCapability.
2432
+ * Use `create(CryptoProviderCapabilitySchema)` to create a new message.
2433
+ */
2434
+ export declare const CryptoProviderCapabilitySchema: GenMessage<CryptoProviderCapability>;
2435
+ /**
2436
+ * @generated from message reallyme.crypto.v1.CryptoProviderCapabilitySet
2437
+ */
2438
+ export type CryptoProviderCapabilitySet = Message<"reallyme.crypto.v1.CryptoProviderCapabilitySet"> & {
1404
2439
  /**
1405
- * @generated from enum value: CRYPTO_OPERATION_JWA_CONCAT_KDF_SHA256_DERIVE = 42;
2440
+ * @generated from field: repeated reallyme.crypto.v1.CryptoProviderCapability capabilities = 1;
1406
2441
  */
1407
- JWA_CONCAT_KDF_SHA256_DERIVE = 42,
2442
+ capabilities: CryptoProviderCapability[];
2443
+ };
2444
+ /**
2445
+ * Describes the message reallyme.crypto.v1.CryptoProviderCapabilitySet.
2446
+ * Use `create(CryptoProviderCapabilitySetSchema)` to create a new message.
2447
+ */
2448
+ export declare const CryptoProviderCapabilitySetSchema: GenMessage<CryptoProviderCapabilitySet>;
2449
+ /**
2450
+ * JsonWebKey carries a public JWK document at API/storage boundaries. The JSON
2451
+ * member is the canonical JCS form used by the package vectors; private key
2452
+ * material is intentionally out of scope for this message.
2453
+ *
2454
+ * @generated from message reallyme.crypto.v1.JsonWebKey
2455
+ */
2456
+ export type JsonWebKey = Message<"reallyme.crypto.v1.JsonWebKey"> & {
1408
2457
  /**
1409
- * @generated from enum value: CRYPTO_OPERATION_KEY_WRAP = 50;
2458
+ * @generated from field: reallyme.crypto.v1.CryptoAlgorithmIdentifier algorithm = 1;
1410
2459
  */
1411
- KEY_WRAP = 50,
2460
+ algorithm?: CryptoAlgorithmIdentifier | undefined;
1412
2461
  /**
1413
- * @generated from enum value: CRYPTO_OPERATION_KEY_UNWRAP = 51;
2462
+ * @generated from field: bytes public_key = 2;
1414
2463
  */
1415
- KEY_UNWRAP = 51,
2464
+ publicKey: Uint8Array;
1416
2465
  /**
1417
- * @generated from enum value: CRYPTO_OPERATION_HPKE_SEAL = 60;
2466
+ * @generated from field: bytes canonical_jcs = 3;
1418
2467
  */
1419
- HPKE_SEAL = 60,
2468
+ canonicalJcs: Uint8Array;
2469
+ };
2470
+ /**
2471
+ * Describes the message reallyme.crypto.v1.JsonWebKey.
2472
+ * Use `create(JsonWebKeySchema)` to create a new message.
2473
+ */
2474
+ export declare const JsonWebKeySchema: GenMessage<JsonWebKey>;
2475
+ /**
2476
+ * JsonWebKeySet is the protobuf boundary equivalent of the JSON { "keys": [] }
2477
+ * JWKS wrapper. It stores parsed public-key records rather than arbitrary JSON.
2478
+ *
2479
+ * @generated from message reallyme.crypto.v1.JsonWebKeySet
2480
+ */
2481
+ export type JsonWebKeySet = Message<"reallyme.crypto.v1.JsonWebKeySet"> & {
1420
2482
  /**
1421
- * @generated from enum value: CRYPTO_OPERATION_HPKE_OPEN = 61;
2483
+ * @generated from field: repeated reallyme.crypto.v1.JsonWebKey keys = 1;
1422
2484
  */
1423
- HPKE_OPEN = 61
1424
- }
2485
+ keys: JsonWebKey[];
2486
+ };
1425
2487
  /**
1426
- * Describes the enum reallyme.crypto.v1.CryptoOperation.
2488
+ * Describes the message reallyme.crypto.v1.JsonWebKeySet.
2489
+ * Use `create(JsonWebKeySetSchema)` to create a new message.
1427
2490
  */
1428
- export declare const CryptoOperationSchema: GenEnum<CryptoOperation>;
2491
+ export declare const JsonWebKeySetSchema: GenMessage<JsonWebKeySet>;
1429
2492
  /**
1430
2493
  * CryptoErrorReason is the component-owned reason-code enum for reallyme/crypto.
1431
2494
  * Values are stable public boundary codes; internal Rust, Swift, Kotlin, and
@@ -1507,6 +2570,22 @@ export declare enum CryptoErrorReason {
1507
2570
  * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_INVALID_SHARED_SECRET = 125;
1508
2571
  */
1509
2572
  PRIMITIVE_INVALID_SHARED_SECRET = 125,
2573
+ /**
2574
+ * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_MALFORMED_PROTOBUF = 130;
2575
+ */
2576
+ PRIMITIVE_MALFORMED_PROTOBUF = 130,
2577
+ /**
2578
+ * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_MALFORMED_JSON = 131;
2579
+ */
2580
+ PRIMITIVE_MALFORMED_JSON = 131,
2581
+ /**
2582
+ * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_RESOURCE_LIMIT_EXCEEDED = 132;
2583
+ */
2584
+ PRIMITIVE_RESOURCE_LIMIT_EXCEEDED = 132,
2585
+ /**
2586
+ * @generated from enum value: CRYPTO_ERROR_REASON_PRIMITIVE_MISSING_OPERATION = 133;
2587
+ */
2588
+ PRIMITIVE_MISSING_OPERATION = 133,
1510
2589
  /**
1511
2590
  * Provider policy and availability.
1512
2591
  *
@@ -1526,27 +2605,43 @@ export declare enum CryptoErrorReason {
1526
2605
  */
1527
2606
  PROVIDER_RANDOMNESS_UNAVAILABLE = 203,
1528
2607
  /**
1529
- * Backend dispatch and internal state.
1530
- *
1531
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_INVALID_STATE = 300;
2608
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_KEY_EXISTS = 204;
1532
2609
  */
1533
- BACKEND_INVALID_STATE = 300,
2610
+ PROVIDER_KEY_EXISTS = 204,
1534
2611
  /**
1535
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_INTERNAL = 301;
2612
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_KEY_NOT_FOUND = 205;
1536
2613
  */
1537
- BACKEND_INTERNAL = 301,
2614
+ PROVIDER_KEY_NOT_FOUND = 205,
1538
2615
  /**
1539
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_MALFORMED_PROTOBUF = 302;
2616
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_ACCESS_DENIED = 206;
1540
2617
  */
1541
- BACKEND_MALFORMED_PROTOBUF = 302,
2618
+ PROVIDER_ACCESS_DENIED = 206,
1542
2619
  /**
1543
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_MALFORMED_JSON = 303;
2620
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_USER_AUTHENTICATION_REQUIRED = 207;
1544
2621
  */
1545
- BACKEND_MALFORMED_JSON = 303,
2622
+ PROVIDER_USER_AUTHENTICATION_REQUIRED = 207,
1546
2623
  /**
1547
- * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_RESOURCE_LIMIT_EXCEEDED = 304;
2624
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_USER_CANCELED = 208;
1548
2625
  */
1549
- BACKEND_RESOURCE_LIMIT_EXCEEDED = 304
2626
+ PROVIDER_USER_CANCELED = 208,
2627
+ /**
2628
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_HARDWARE_UNAVAILABLE = 209;
2629
+ */
2630
+ PROVIDER_HARDWARE_UNAVAILABLE = 209,
2631
+ /**
2632
+ * @generated from enum value: CRYPTO_ERROR_REASON_PROVIDER_HARDWARE_REJECTED_KEY = 210;
2633
+ */
2634
+ PROVIDER_HARDWARE_REJECTED_KEY = 210,
2635
+ /**
2636
+ * Backend dispatch and internal state.
2637
+ *
2638
+ * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_INVALID_STATE = 300;
2639
+ */
2640
+ BACKEND_INVALID_STATE = 300,
2641
+ /**
2642
+ * @generated from enum value: CRYPTO_ERROR_REASON_BACKEND_INTERNAL = 301;
2643
+ */
2644
+ BACKEND_INTERNAL = 301
1550
2645
  }
1551
2646
  /**
1552
2647
  * Describes the enum reallyme.crypto.v1.CryptoErrorReason.
@@ -1605,9 +2700,20 @@ export declare enum CryptoAlgorithmFamily {
1605
2700
  */
1606
2701
  export declare const CryptoAlgorithmFamilySchema: GenEnum<CryptoAlgorithmFamily>;
1607
2702
  /**
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.
2703
+ * Algorithm selector values are a permanent, append-only wire contract from
2704
+ * this release onward. Each family-scoped enum uses sparse subfamily bands so
2705
+ * future suites can be added beside related algorithms without renumbering an
2706
+ * existing value.
2707
+ *
2708
+ * SignatureAlgorithm bands:
2709
+ * 100-199: EdDSA
2710
+ * 200-299: elliptic-curve signatures
2711
+ * 300-499: RSA verification suites
2712
+ * 1000-1099: post-quantum signatures
2713
+ * 1100-1199: hash-based post-quantum signatures
2714
+ *
2715
+ * RSA values identify verification suites; RSA signing is intentionally not
2716
+ * exposed by this package today.
1611
2717
  *
1612
2718
  * @generated from enum reallyme.crypto.v1.SignatureAlgorithm
1613
2719
  */
@@ -1617,77 +2723,77 @@ export declare enum SignatureAlgorithm {
1617
2723
  */
1618
2724
  UNSPECIFIED = 0,
1619
2725
  /**
1620
- * @generated from enum value: SIGNATURE_ALGORITHM_ED25519 = 1;
2726
+ * @generated from enum value: SIGNATURE_ALGORITHM_ED25519 = 100;
1621
2727
  */
1622
- ED25519 = 1,
2728
+ ED25519 = 100,
1623
2729
  /**
1624
- * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P256_SHA256 = 2;
2730
+ * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P256_SHA256 = 200;
1625
2731
  */
1626
- ECDSA_P256_SHA256 = 2,
2732
+ ECDSA_P256_SHA256 = 200,
1627
2733
  /**
1628
- * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P384_SHA384 = 3;
2734
+ * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P384_SHA384 = 210;
1629
2735
  */
1630
- ECDSA_P384_SHA384 = 3,
2736
+ ECDSA_P384_SHA384 = 210,
1631
2737
  /**
1632
- * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P521_SHA512 = 4;
2738
+ * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_P521_SHA512 = 220;
1633
2739
  */
1634
- ECDSA_P521_SHA512 = 4,
2740
+ ECDSA_P521_SHA512 = 220,
1635
2741
  /**
1636
- * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_SECP256K1_SHA256 = 5;
2742
+ * @generated from enum value: SIGNATURE_ALGORITHM_ECDSA_SECP256K1_SHA256 = 230;
1637
2743
  */
1638
- ECDSA_SECP256K1_SHA256 = 5,
2744
+ ECDSA_SECP256K1_SHA256 = 230,
1639
2745
  /**
1640
- * @generated from enum value: SIGNATURE_ALGORITHM_BIP340_SCHNORR_SECP256K1_SHA256 = 6;
2746
+ * @generated from enum value: SIGNATURE_ALGORITHM_BIP340_SCHNORR_SECP256K1_SHA256 = 240;
1641
2747
  */
1642
- BIP340_SCHNORR_SECP256K1_SHA256 = 6,
2748
+ BIP340_SCHNORR_SECP256K1_SHA256 = 240,
1643
2749
  /**
1644
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA1 = 7;
2750
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA1 = 300;
1645
2751
  */
1646
- RSA_PKCS1V15_SHA1 = 7,
2752
+ RSA_PKCS1V15_SHA1 = 300,
1647
2753
  /**
1648
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA256 = 8;
2754
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA256 = 310;
1649
2755
  */
1650
- RSA_PKCS1V15_SHA256 = 8,
2756
+ RSA_PKCS1V15_SHA256 = 310,
1651
2757
  /**
1652
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA384 = 9;
2758
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA384 = 320;
1653
2759
  */
1654
- RSA_PKCS1V15_SHA384 = 9,
2760
+ RSA_PKCS1V15_SHA384 = 320,
1655
2761
  /**
1656
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA512 = 10;
2762
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PKCS1V15_SHA512 = 330;
1657
2763
  */
1658
- RSA_PKCS1V15_SHA512 = 10,
2764
+ RSA_PKCS1V15_SHA512 = 330,
1659
2765
  /**
1660
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA1_MGF1_SHA1 = 11;
2766
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA1_MGF1_SHA1 = 400;
1661
2767
  */
1662
- RSA_PSS_SHA1_MGF1_SHA1 = 11,
2768
+ RSA_PSS_SHA1_MGF1_SHA1 = 400,
1663
2769
  /**
1664
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA256_MGF1_SHA256 = 12;
2770
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA256_MGF1_SHA256 = 410;
1665
2771
  */
1666
- RSA_PSS_SHA256_MGF1_SHA256 = 12,
2772
+ RSA_PSS_SHA256_MGF1_SHA256 = 410,
1667
2773
  /**
1668
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA384_MGF1_SHA384 = 13;
2774
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA384_MGF1_SHA384 = 420;
1669
2775
  */
1670
- RSA_PSS_SHA384_MGF1_SHA384 = 13,
2776
+ RSA_PSS_SHA384_MGF1_SHA384 = 420,
1671
2777
  /**
1672
- * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA512_MGF1_SHA512 = 14;
2778
+ * @generated from enum value: SIGNATURE_ALGORITHM_RSA_PSS_SHA512_MGF1_SHA512 = 430;
1673
2779
  */
1674
- RSA_PSS_SHA512_MGF1_SHA512 = 14,
2780
+ RSA_PSS_SHA512_MGF1_SHA512 = 430,
1675
2781
  /**
1676
- * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_44 = 15;
2782
+ * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_44 = 1000;
1677
2783
  */
1678
- ML_DSA_44 = 15,
2784
+ ML_DSA_44 = 1000,
1679
2785
  /**
1680
- * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_65 = 16;
2786
+ * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_65 = 1010;
1681
2787
  */
1682
- ML_DSA_65 = 16,
2788
+ ML_DSA_65 = 1010,
1683
2789
  /**
1684
- * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_87 = 17;
2790
+ * @generated from enum value: SIGNATURE_ALGORITHM_ML_DSA_87 = 1020;
1685
2791
  */
1686
- ML_DSA_87 = 17,
2792
+ ML_DSA_87 = 1020,
1687
2793
  /**
1688
- * @generated from enum value: SIGNATURE_ALGORITHM_SLH_DSA_SHA2_128S = 18;
2794
+ * @generated from enum value: SIGNATURE_ALGORITHM_SLH_DSA_SHA2_128S = 1100;
1689
2795
  */
1690
- SLH_DSA_SHA2_128S = 18
2796
+ SLH_DSA_SHA2_128S = 1100
1691
2797
  }
1692
2798
  /**
1693
2799
  * Describes the enum reallyme.crypto.v1.SignatureAlgorithm.
@@ -1695,7 +2801,9 @@ export declare enum SignatureAlgorithm {
1695
2801
  export declare const SignatureAlgorithmSchema: GenEnum<SignatureAlgorithm>;
1696
2802
  /**
1697
2803
  * KeyAgreementAlgorithm identifies direct shared-secret derivation suites.
1698
- * Callers must still feed derived shared secrets through a protocol KDF.
2804
+ * Values 100-199 are Montgomery-form curves and 200-299 are NIST prime
2805
+ * curves. Callers must still feed derived shared secrets through a protocol
2806
+ * KDF.
1699
2807
  *
1700
2808
  * @generated from enum reallyme.crypto.v1.KeyAgreementAlgorithm
1701
2809
  */
@@ -1705,29 +2813,30 @@ export declare enum KeyAgreementAlgorithm {
1705
2813
  */
1706
2814
  UNSPECIFIED = 0,
1707
2815
  /**
1708
- * @generated from enum value: KEY_AGREEMENT_ALGORITHM_X25519 = 1;
2816
+ * @generated from enum value: KEY_AGREEMENT_ALGORITHM_X25519 = 100;
1709
2817
  */
1710
- X25519 = 1,
2818
+ X25519 = 100,
1711
2819
  /**
1712
- * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P256_ECDH = 2;
2820
+ * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P256_ECDH = 200;
1713
2821
  */
1714
- P256_ECDH = 2,
2822
+ P256_ECDH = 200,
1715
2823
  /**
1716
- * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P384_ECDH = 3;
2824
+ * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P384_ECDH = 210;
1717
2825
  */
1718
- P384_ECDH = 3,
2826
+ P384_ECDH = 210,
1719
2827
  /**
1720
- * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P521_ECDH = 4;
2828
+ * @generated from enum value: KEY_AGREEMENT_ALGORITHM_P521_ECDH = 220;
1721
2829
  */
1722
- P521_ECDH = 4
2830
+ P521_ECDH = 220
1723
2831
  }
1724
2832
  /**
1725
2833
  * Describes the enum reallyme.crypto.v1.KeyAgreementAlgorithm.
1726
2834
  */
1727
2835
  export declare const KeyAgreementAlgorithmSchema: GenEnum<KeyAgreementAlgorithm>;
1728
2836
  /**
1729
- * KemAlgorithm identifies encapsulation suites. X-Wing values are ReallyMe's
1730
- * supported hybrid KEM variants over X25519 and ML-KEM.
2837
+ * KemAlgorithm identifies encapsulation suites. X-Wing values are supported
2838
+ * hybrid KEM variants over X25519 and ML-KEM. Values 1000-1099 are
2839
+ * post-quantum KEMs and 1100-1199 are hybrid KEMs.
1731
2840
  *
1732
2841
  * @generated from enum reallyme.crypto.v1.KemAlgorithm
1733
2842
  */
@@ -1737,55 +2846,189 @@ export declare enum KemAlgorithm {
1737
2846
  */
1738
2847
  UNSPECIFIED = 0,
1739
2848
  /**
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;
2849
+ * @generated from enum value: KEM_ALGORITHM_ML_KEM_512 = 1000;
1745
2850
  */
1746
- ML_KEM_768 = 2,
2851
+ ML_KEM_512 = 1000,
1747
2852
  /**
1748
- * @generated from enum value: KEM_ALGORITHM_ML_KEM_1024 = 3;
2853
+ * @generated from enum value: KEM_ALGORITHM_ML_KEM_768 = 1010;
1749
2854
  */
1750
- ML_KEM_1024 = 3,
2855
+ ML_KEM_768 = 1010,
1751
2856
  /**
1752
- * @generated from enum value: KEM_ALGORITHM_X_WING_768 = 4;
2857
+ * @generated from enum value: KEM_ALGORITHM_ML_KEM_1024 = 1020;
1753
2858
  */
1754
- X_WING_768 = 4,
2859
+ ML_KEM_1024 = 1020,
1755
2860
  /**
1756
- * @generated from enum value: KEM_ALGORITHM_X_WING_1024 = 5;
2861
+ * @generated from enum value: KEM_ALGORITHM_X_WING_768 = 1100;
1757
2862
  */
1758
- X_WING_1024 = 5
2863
+ X_WING_768 = 1100
1759
2864
  }
1760
2865
  /**
1761
2866
  * Describes the enum reallyme.crypto.v1.KemAlgorithm.
1762
2867
  */
1763
2868
  export declare const KemAlgorithmSchema: GenEnum<KemAlgorithm>;
1764
2869
  /**
1765
- * HpkeSuite identifies supported RFC 9180 HPKE Base-mode ciphersuites.
2870
+ * HpkeKemId carries the two-byte HPKE KEM registry identifier. Registered
2871
+ * draft values are append-only wire values even while their defining drafts
2872
+ * continue to evolve. Runtime provider policy separately determines whether a
2873
+ * registered identifier is executable in a given build.
2874
+ *
2875
+ * @generated from enum reallyme.crypto.v1.HpkeKemId
2876
+ */
2877
+ export declare enum HpkeKemId {
2878
+ /**
2879
+ * @generated from enum value: HPKE_KEM_ID_UNSPECIFIED = 0;
2880
+ */
2881
+ UNSPECIFIED = 0,
2882
+ /**
2883
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_P256_HKDF_SHA256 = 16;
2884
+ */
2885
+ DHKEM_P256_HKDF_SHA256 = 16,
2886
+ /**
2887
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_P384_HKDF_SHA384 = 17;
2888
+ */
2889
+ DHKEM_P384_HKDF_SHA384 = 17,
2890
+ /**
2891
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_P521_HKDF_SHA512 = 18;
2892
+ */
2893
+ DHKEM_P521_HKDF_SHA512 = 18,
2894
+ /**
2895
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_CP256_HKDF_SHA256 = 19;
2896
+ */
2897
+ DHKEM_CP256_HKDF_SHA256 = 19,
2898
+ /**
2899
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_CP384_HKDF_SHA384 = 20;
2900
+ */
2901
+ DHKEM_CP384_HKDF_SHA384 = 20,
2902
+ /**
2903
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_CP521_HKDF_SHA512 = 21;
2904
+ */
2905
+ DHKEM_CP521_HKDF_SHA512 = 21,
2906
+ /**
2907
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_SECP256K1_HKDF_SHA256 = 22;
2908
+ */
2909
+ DHKEM_SECP256K1_HKDF_SHA256 = 22,
2910
+ /**
2911
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_X25519_HKDF_SHA256 = 32;
2912
+ */
2913
+ DHKEM_X25519_HKDF_SHA256 = 32,
2914
+ /**
2915
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_X448_HKDF_SHA512 = 33;
2916
+ */
2917
+ DHKEM_X448_HKDF_SHA512 = 33,
2918
+ /**
2919
+ * @generated from enum value: HPKE_KEM_ID_DHKEM_X25519_ELLIGATOR_HKDF_SHA256 = 34;
2920
+ */
2921
+ DHKEM_X25519_ELLIGATOR_HKDF_SHA256 = 34,
2922
+ /**
2923
+ * @generated from enum value: HPKE_KEM_ID_X25519_KYBER768_DRAFT00 = 48;
2924
+ */
2925
+ X25519_KYBER768_DRAFT00 = 48,
2926
+ /**
2927
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_512 = 64;
2928
+ */
2929
+ ML_KEM_512 = 64,
2930
+ /**
2931
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_768 = 65;
2932
+ */
2933
+ ML_KEM_768 = 65,
2934
+ /**
2935
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_1024 = 66;
2936
+ */
2937
+ ML_KEM_1024 = 66,
2938
+ /**
2939
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_768_P256 = 80;
2940
+ */
2941
+ ML_KEM_768_P256 = 80,
2942
+ /**
2943
+ * @generated from enum value: HPKE_KEM_ID_ML_KEM_1024_P384 = 81;
2944
+ */
2945
+ ML_KEM_1024_P384 = 81,
2946
+ /**
2947
+ * @generated from enum value: HPKE_KEM_ID_X_WING = 25722;
2948
+ */
2949
+ X_WING = 25722
2950
+ }
2951
+ /**
2952
+ * Describes the enum reallyme.crypto.v1.HpkeKemId.
2953
+ */
2954
+ export declare const HpkeKemIdSchema: GenEnum<HpkeKemId>;
2955
+ /**
2956
+ * HpkeKdfId carries the two-byte HPKE KDF registry identifier.
2957
+ *
2958
+ * @generated from enum reallyme.crypto.v1.HpkeKdfId
2959
+ */
2960
+ export declare enum HpkeKdfId {
2961
+ /**
2962
+ * @generated from enum value: HPKE_KDF_ID_UNSPECIFIED = 0;
2963
+ */
2964
+ UNSPECIFIED = 0,
2965
+ /**
2966
+ * @generated from enum value: HPKE_KDF_ID_HKDF_SHA256 = 1;
2967
+ */
2968
+ HKDF_SHA256 = 1,
2969
+ /**
2970
+ * @generated from enum value: HPKE_KDF_ID_HKDF_SHA384 = 2;
2971
+ */
2972
+ HKDF_SHA384 = 2,
2973
+ /**
2974
+ * @generated from enum value: HPKE_KDF_ID_HKDF_SHA512 = 3;
2975
+ */
2976
+ HKDF_SHA512 = 3,
2977
+ /**
2978
+ * @generated from enum value: HPKE_KDF_ID_SHAKE128 = 16;
2979
+ */
2980
+ SHAKE128 = 16,
2981
+ /**
2982
+ * @generated from enum value: HPKE_KDF_ID_SHAKE256 = 17;
2983
+ */
2984
+ SHAKE256 = 17,
2985
+ /**
2986
+ * @generated from enum value: HPKE_KDF_ID_TURBO_SHAKE128 = 18;
2987
+ */
2988
+ TURBO_SHAKE128 = 18,
2989
+ /**
2990
+ * @generated from enum value: HPKE_KDF_ID_TURBO_SHAKE256 = 19;
2991
+ */
2992
+ TURBO_SHAKE256 = 19
2993
+ }
2994
+ /**
2995
+ * Describes the enum reallyme.crypto.v1.HpkeKdfId.
2996
+ */
2997
+ export declare const HpkeKdfIdSchema: GenEnum<HpkeKdfId>;
2998
+ /**
2999
+ * HpkeAeadId carries the two-byte HPKE AEAD registry identifier.
1766
3000
  *
1767
- * @generated from enum reallyme.crypto.v1.HpkeSuite
3001
+ * @generated from enum reallyme.crypto.v1.HpkeAeadId
1768
3002
  */
1769
- export declare enum HpkeSuite {
3003
+ export declare enum HpkeAeadId {
1770
3004
  /**
1771
- * @generated from enum value: HPKE_SUITE_UNSPECIFIED = 0;
3005
+ * @generated from enum value: HPKE_AEAD_ID_UNSPECIFIED = 0;
1772
3006
  */
1773
3007
  UNSPECIFIED = 0,
1774
3008
  /**
1775
- * @generated from enum value: HPKE_SUITE_DHKEM_P256_HKDF_SHA256_HKDF_SHA256_AES_256_GCM = 1;
3009
+ * @generated from enum value: HPKE_AEAD_ID_AES_128_GCM = 1;
3010
+ */
3011
+ AES_128_GCM = 1,
3012
+ /**
3013
+ * @generated from enum value: HPKE_AEAD_ID_AES_256_GCM = 2;
3014
+ */
3015
+ AES_256_GCM = 2,
3016
+ /**
3017
+ * @generated from enum value: HPKE_AEAD_ID_CHACHA20_POLY1305 = 3;
1776
3018
  */
1777
- DHKEM_P256_HKDF_SHA256_HKDF_SHA256_AES_256_GCM = 1,
3019
+ CHACHA20_POLY1305 = 3,
1778
3020
  /**
1779
- * @generated from enum value: HPKE_SUITE_DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_CHACHA20_POLY1305 = 2;
3021
+ * @generated from enum value: HPKE_AEAD_ID_EXPORT_ONLY = 65535;
1780
3022
  */
1781
- DHKEM_X25519_HKDF_SHA256_HKDF_SHA256_CHACHA20_POLY1305 = 2
3023
+ EXPORT_ONLY = 65535
1782
3024
  }
1783
3025
  /**
1784
- * Describes the enum reallyme.crypto.v1.HpkeSuite.
3026
+ * Describes the enum reallyme.crypto.v1.HpkeAeadId.
1785
3027
  */
1786
- export declare const HpkeSuiteSchema: GenEnum<HpkeSuite>;
3028
+ export declare const HpkeAeadIdSchema: GenEnum<HpkeAeadId>;
1787
3029
  /**
1788
- * AeadAlgorithm identifies authenticated-encryption suites.
3030
+ * AeadAlgorithm identifies authenticated-encryption suites. Values 100-199 are
3031
+ * AES-based suites and 200-299 are ChaCha-based suites.
1789
3032
  *
1790
3033
  * @generated from enum reallyme.crypto.v1.AeadAlgorithm
1791
3034
  */
@@ -1795,29 +3038,29 @@ export declare enum AeadAlgorithm {
1795
3038
  */
1796
3039
  UNSPECIFIED = 0,
1797
3040
  /**
1798
- * @generated from enum value: AEAD_ALGORITHM_AES_256_GCM = 1;
3041
+ * @generated from enum value: AEAD_ALGORITHM_AES_128_GCM = 100;
1799
3042
  */
1800
- AES_256_GCM = 1,
3043
+ AES_128_GCM = 100,
1801
3044
  /**
1802
- * @generated from enum value: AEAD_ALGORITHM_AES_256_GCM_SIV = 2;
3045
+ * @generated from enum value: AEAD_ALGORITHM_AES_192_GCM = 110;
1803
3046
  */
1804
- AES_256_GCM_SIV = 2,
3047
+ AES_192_GCM = 110,
1805
3048
  /**
1806
- * @generated from enum value: AEAD_ALGORITHM_CHACHA20_POLY1305 = 3;
3049
+ * @generated from enum value: AEAD_ALGORITHM_AES_256_GCM = 120;
1807
3050
  */
1808
- CHACHA20_POLY1305 = 3,
3051
+ AES_256_GCM = 120,
1809
3052
  /**
1810
- * @generated from enum value: AEAD_ALGORITHM_XCHACHA20_POLY1305 = 4;
3053
+ * @generated from enum value: AEAD_ALGORITHM_AES_256_GCM_SIV = 130;
1811
3054
  */
1812
- XCHACHA20_POLY1305 = 4,
3055
+ AES_256_GCM_SIV = 130,
1813
3056
  /**
1814
- * @generated from enum value: AEAD_ALGORITHM_AES_128_GCM = 5;
3057
+ * @generated from enum value: AEAD_ALGORITHM_CHACHA20_POLY1305 = 200;
1815
3058
  */
1816
- AES_128_GCM = 5,
3059
+ CHACHA20_POLY1305 = 200,
1817
3060
  /**
1818
- * @generated from enum value: AEAD_ALGORITHM_AES_192_GCM = 6;
3061
+ * @generated from enum value: AEAD_ALGORITHM_XCHACHA20_POLY1305 = 210;
1819
3062
  */
1820
- AES_192_GCM = 6
3063
+ XCHACHA20_POLY1305 = 210
1821
3064
  }
1822
3065
  /**
1823
3066
  * Describes the enum reallyme.crypto.v1.AeadAlgorithm.
@@ -1825,6 +3068,7 @@ export declare enum AeadAlgorithm {
1825
3068
  export declare const AeadAlgorithmSchema: GenEnum<AeadAlgorithm>;
1826
3069
  /**
1827
3070
  * HashAlgorithm identifies digest algorithms exposed by the hash primitives.
3071
+ * Values 100-199 are SHA-2 and 200-299 are SHA-3.
1828
3072
  *
1829
3073
  * @generated from enum reallyme.crypto.v1.HashAlgorithm
1830
3074
  */
@@ -1834,40 +3078,41 @@ export declare enum HashAlgorithm {
1834
3078
  */
1835
3079
  UNSPECIFIED = 0,
1836
3080
  /**
1837
- * @generated from enum value: HASH_ALGORITHM_SHA2_256 = 1;
3081
+ * @generated from enum value: HASH_ALGORITHM_SHA2_256 = 100;
1838
3082
  */
1839
- SHA2_256 = 1,
3083
+ SHA2_256 = 100,
1840
3084
  /**
1841
- * @generated from enum value: HASH_ALGORITHM_SHA2_384 = 2;
3085
+ * @generated from enum value: HASH_ALGORITHM_SHA2_384 = 110;
1842
3086
  */
1843
- SHA2_384 = 2,
3087
+ SHA2_384 = 110,
1844
3088
  /**
1845
- * @generated from enum value: HASH_ALGORITHM_SHA2_512 = 3;
3089
+ * @generated from enum value: HASH_ALGORITHM_SHA2_512 = 120;
1846
3090
  */
1847
- SHA2_512 = 3,
3091
+ SHA2_512 = 120,
1848
3092
  /**
1849
- * @generated from enum value: HASH_ALGORITHM_SHA3_224 = 4;
3093
+ * @generated from enum value: HASH_ALGORITHM_SHA3_224 = 200;
1850
3094
  */
1851
- SHA3_224 = 4,
3095
+ SHA3_224 = 200,
1852
3096
  /**
1853
- * @generated from enum value: HASH_ALGORITHM_SHA3_256 = 5;
3097
+ * @generated from enum value: HASH_ALGORITHM_SHA3_256 = 210;
1854
3098
  */
1855
- SHA3_256 = 5,
3099
+ SHA3_256 = 210,
1856
3100
  /**
1857
- * @generated from enum value: HASH_ALGORITHM_SHA3_384 = 6;
3101
+ * @generated from enum value: HASH_ALGORITHM_SHA3_384 = 220;
1858
3102
  */
1859
- SHA3_384 = 6,
3103
+ SHA3_384 = 220,
1860
3104
  /**
1861
- * @generated from enum value: HASH_ALGORITHM_SHA3_512 = 7;
3105
+ * @generated from enum value: HASH_ALGORITHM_SHA3_512 = 230;
1862
3106
  */
1863
- SHA3_512 = 7
3107
+ SHA3_512 = 230
1864
3108
  }
1865
3109
  /**
1866
3110
  * Describes the enum reallyme.crypto.v1.HashAlgorithm.
1867
3111
  */
1868
3112
  export declare const HashAlgorithmSchema: GenEnum<HashAlgorithm>;
1869
3113
  /**
1870
- * MacAlgorithm identifies message-authentication-code suites.
3114
+ * MacAlgorithm identifies message-authentication-code suites. Values 100-199
3115
+ * are HMAC suites over SHA-2.
1871
3116
  *
1872
3117
  * @generated from enum reallyme.crypto.v1.MacAlgorithm
1873
3118
  */
@@ -1877,21 +3122,32 @@ export declare enum MacAlgorithm {
1877
3122
  */
1878
3123
  UNSPECIFIED = 0,
1879
3124
  /**
1880
- * @generated from enum value: MAC_ALGORITHM_HMAC_SHA256 = 1;
3125
+ * @generated from enum value: MAC_ALGORITHM_HMAC_SHA256 = 100;
3126
+ */
3127
+ HMAC_SHA256 = 100,
3128
+ /**
3129
+ * @generated from enum value: MAC_ALGORITHM_HMAC_SHA384 = 110;
1881
3130
  */
1882
- HMAC_SHA256 = 1,
3131
+ HMAC_SHA384 = 110,
1883
3132
  /**
1884
- * @generated from enum value: MAC_ALGORITHM_HMAC_SHA512 = 2;
3133
+ * @generated from enum value: MAC_ALGORITHM_HMAC_SHA512 = 120;
1885
3134
  */
1886
- HMAC_SHA512 = 2
3135
+ HMAC_SHA512 = 120
1887
3136
  }
1888
3137
  /**
1889
3138
  * Describes the enum reallyme.crypto.v1.MacAlgorithm.
1890
3139
  */
1891
3140
  export declare const MacAlgorithmSchema: GenEnum<MacAlgorithm>;
1892
3141
  /**
1893
- * KdfAlgorithm identifies key-derivation functions. PBKDF2 values are retained
1894
- * for legacy interoperability; new password storage should prefer Argon2id.
3142
+ * KdfAlgorithm identifies key-derivation functions. PBKDF2 values remain for
3143
+ * standards and password-record interoperability; new password storage should
3144
+ * prefer Argon2id.
3145
+ * Values are grouped by construction:
3146
+ * 100-199: extract-and-expand KDFs
3147
+ * 200-299: memory-hard password KDFs
3148
+ * 300-399: password-record KDFs
3149
+ * 400-499: concatenation KDFs
3150
+ * 500-599: XOF/MAC-based KDFs
1895
3151
  *
1896
3152
  * @generated from enum reallyme.crypto.v1.KdfAlgorithm
1897
3153
  */
@@ -1901,32 +3157,66 @@ export declare enum KdfAlgorithm {
1901
3157
  */
1902
3158
  UNSPECIFIED = 0,
1903
3159
  /**
1904
- * @generated from enum value: KDF_ALGORITHM_HKDF_SHA256 = 1;
3160
+ * @generated from enum value: KDF_ALGORITHM_HKDF_SHA256 = 100;
1905
3161
  */
1906
- HKDF_SHA256 = 1,
3162
+ HKDF_SHA256 = 100,
3163
+ /**
3164
+ * @generated from enum value: KDF_ALGORITHM_HKDF_SHA384 = 110;
3165
+ */
3166
+ HKDF_SHA384 = 110,
3167
+ /**
3168
+ * @generated from enum value: KDF_ALGORITHM_ARGON2ID = 200;
3169
+ */
3170
+ ARGON2ID = 200,
1907
3171
  /**
1908
- * @generated from enum value: KDF_ALGORITHM_ARGON2ID = 2;
3172
+ * @generated from enum value: KDF_ALGORITHM_PBKDF2_HMAC_SHA256 = 300;
1909
3173
  */
1910
- ARGON2ID = 2,
3174
+ PBKDF2_HMAC_SHA256 = 300,
1911
3175
  /**
1912
- * @generated from enum value: KDF_ALGORITHM_PBKDF2_HMAC_SHA256 = 3;
3176
+ * @generated from enum value: KDF_ALGORITHM_PBKDF2_HMAC_SHA512 = 310;
1913
3177
  */
1914
- PBKDF2_HMAC_SHA256 = 3,
3178
+ PBKDF2_HMAC_SHA512 = 310,
1915
3179
  /**
1916
- * @generated from enum value: KDF_ALGORITHM_PBKDF2_HMAC_SHA512 = 4;
3180
+ * @generated from enum value: KDF_ALGORITHM_JWA_CONCAT_KDF_SHA256 = 400;
1917
3181
  */
1918
- PBKDF2_HMAC_SHA512 = 4,
3182
+ JWA_CONCAT_KDF_SHA256 = 400,
1919
3183
  /**
1920
- * @generated from enum value: KDF_ALGORITHM_JWA_CONCAT_KDF_SHA256 = 5;
3184
+ * @generated from enum value: KDF_ALGORITHM_KMAC_256 = 500;
1921
3185
  */
1922
- JWA_CONCAT_KDF_SHA256 = 5
3186
+ KMAC_256 = 500
1923
3187
  }
1924
3188
  /**
1925
3189
  * Describes the enum reallyme.crypto.v1.KdfAlgorithm.
1926
3190
  */
1927
3191
  export declare const KdfAlgorithmSchema: GenEnum<KdfAlgorithm>;
1928
3192
  /**
1929
- * KeyWrapAlgorithm identifies key-wrapping algorithms.
3193
+ * Argon2idKdfVersion selects one immutable, reviewed resource-cost profile.
3194
+ * Numeric versions are stable API values shared by the direct SDK and
3195
+ * generated operation boundaries.
3196
+ *
3197
+ * @generated from enum reallyme.crypto.v1.Argon2idKdfVersion
3198
+ */
3199
+ export declare enum Argon2idKdfVersion {
3200
+ /**
3201
+ * @generated from enum value: ARGON2ID_KDF_VERSION_UNSPECIFIED = 0;
3202
+ */
3203
+ UNSPECIFIED = 0,
3204
+ /**
3205
+ * @generated from enum value: ARGON2ID_KDF_VERSION_V1 = 1;
3206
+ */
3207
+ V1 = 1,
3208
+ /**
3209
+ * @generated from enum value: ARGON2ID_KDF_VERSION_V2 = 2;
3210
+ */
3211
+ V2 = 2
3212
+ }
3213
+ /**
3214
+ * Describes the enum reallyme.crypto.v1.Argon2idKdfVersion.
3215
+ */
3216
+ export declare const Argon2idKdfVersionSchema: GenEnum<Argon2idKdfVersion>;
3217
+ /**
3218
+ * KeyWrapAlgorithm identifies key-wrapping algorithms. Values 100-199 are
3219
+ * AES-based key-wrapping suites.
1930
3220
  *
1931
3221
  * @generated from enum reallyme.crypto.v1.KeyWrapAlgorithm
1932
3222
  */
@@ -1936,9 +3226,17 @@ export declare enum KeyWrapAlgorithm {
1936
3226
  */
1937
3227
  UNSPECIFIED = 0,
1938
3228
  /**
1939
- * @generated from enum value: KEY_WRAP_ALGORITHM_AES_256_KW = 1;
3229
+ * @generated from enum value: KEY_WRAP_ALGORITHM_AES_128_KW = 100;
3230
+ */
3231
+ AES_128_KW = 100,
3232
+ /**
3233
+ * @generated from enum value: KEY_WRAP_ALGORITHM_AES_192_KW = 110;
1940
3234
  */
1941
- AES_256_KW = 1
3235
+ AES_192_KW = 110,
3236
+ /**
3237
+ * @generated from enum value: KEY_WRAP_ALGORITHM_AES_256_KW = 120;
3238
+ */
3239
+ AES_256_KW = 120
1942
3240
  }
1943
3241
  /**
1944
3242
  * Describes the enum reallyme.crypto.v1.KeyWrapAlgorithm.
@@ -2085,6 +3383,139 @@ export declare enum RsaPublicKeyDerEncoding {
2085
3383
  * Describes the enum reallyme.crypto.v1.RsaPublicKeyDerEncoding.
2086
3384
  */
2087
3385
  export declare const RsaPublicKeyDerEncodingSchema: GenEnum<RsaPublicKeyDerEncoding>;
3386
+ /**
3387
+ * PlatformKeyProvider identifies the platform owner of a non-exportable key.
3388
+ * Hardware residency is represented by security level, not by inventing a
3389
+ * separate cryptographic algorithm value.
3390
+ *
3391
+ * @generated from enum reallyme.crypto.v1.PlatformKeyProvider
3392
+ */
3393
+ export declare enum PlatformKeyProvider {
3394
+ /**
3395
+ * @generated from enum value: PLATFORM_KEY_PROVIDER_UNSPECIFIED = 0;
3396
+ */
3397
+ UNSPECIFIED = 0,
3398
+ /**
3399
+ * @generated from enum value: PLATFORM_KEY_PROVIDER_APPLE_KEYCHAIN = 100;
3400
+ */
3401
+ APPLE_KEYCHAIN = 100,
3402
+ /**
3403
+ * @generated from enum value: PLATFORM_KEY_PROVIDER_ANDROID_KEYSTORE = 200;
3404
+ */
3405
+ ANDROID_KEYSTORE = 200
3406
+ }
3407
+ /**
3408
+ * Describes the enum reallyme.crypto.v1.PlatformKeyProvider.
3409
+ */
3410
+ export declare const PlatformKeyProviderSchema: GenEnum<PlatformKeyProvider>;
3411
+ /**
3412
+ * PlatformKeySecurityLevel records requested and actual key residency. Actual
3413
+ * residency must be reported by the provider after generation or lookup; a
3414
+ * requested value is not evidence by itself.
3415
+ *
3416
+ * @generated from enum reallyme.crypto.v1.PlatformKeySecurityLevel
3417
+ */
3418
+ export declare enum PlatformKeySecurityLevel {
3419
+ /**
3420
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_UNSPECIFIED = 0;
3421
+ */
3422
+ UNSPECIFIED = 0,
3423
+ /**
3424
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_SOFTWARE = 1;
3425
+ */
3426
+ SOFTWARE = 1,
3427
+ /**
3428
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_TRUSTED_EXECUTION_ENVIRONMENT = 2;
3429
+ */
3430
+ TRUSTED_EXECUTION_ENVIRONMENT = 2,
3431
+ /**
3432
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_SECURE_ENCLAVE = 3;
3433
+ */
3434
+ SECURE_ENCLAVE = 3,
3435
+ /**
3436
+ * @generated from enum value: PLATFORM_KEY_SECURITY_LEVEL_STRONGBOX = 4;
3437
+ */
3438
+ STRONGBOX = 4
3439
+ }
3440
+ /**
3441
+ * Describes the enum reallyme.crypto.v1.PlatformKeySecurityLevel.
3442
+ */
3443
+ export declare const PlatformKeySecurityLevelSchema: GenEnum<PlatformKeySecurityLevel>;
3444
+ /**
3445
+ * @generated from enum reallyme.crypto.v1.PlatformKeyPurpose
3446
+ */
3447
+ export declare enum PlatformKeyPurpose {
3448
+ /**
3449
+ * @generated from enum value: PLATFORM_KEY_PURPOSE_UNSPECIFIED = 0;
3450
+ */
3451
+ UNSPECIFIED = 0,
3452
+ /**
3453
+ * @generated from enum value: PLATFORM_KEY_PURPOSE_SIGNING = 1;
3454
+ */
3455
+ SIGNING = 1,
3456
+ /**
3457
+ * @generated from enum value: PLATFORM_KEY_PURPOSE_KEY_AGREEMENT = 2;
3458
+ */
3459
+ KEY_AGREEMENT = 2
3460
+ }
3461
+ /**
3462
+ * Describes the enum reallyme.crypto.v1.PlatformKeyPurpose.
3463
+ */
3464
+ export declare const PlatformKeyPurposeSchema: GenEnum<PlatformKeyPurpose>;
3465
+ /**
3466
+ * @generated from enum reallyme.crypto.v1.AppleSecureEnclaveAccessPolicy
3467
+ */
3468
+ export declare enum AppleSecureEnclaveAccessPolicy {
3469
+ /**
3470
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_UNSPECIFIED = 0;
3471
+ */
3472
+ UNSPECIFIED = 0,
3473
+ /**
3474
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_PRIVATE_KEY_USAGE = 1;
3475
+ */
3476
+ PRIVATE_KEY_USAGE = 1,
3477
+ /**
3478
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_USER_PRESENCE = 2;
3479
+ */
3480
+ USER_PRESENCE = 2,
3481
+ /**
3482
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_BIOMETRY_ANY = 3;
3483
+ */
3484
+ BIOMETRY_ANY = 3,
3485
+ /**
3486
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_BIOMETRY_CURRENT_SET = 4;
3487
+ */
3488
+ BIOMETRY_CURRENT_SET = 4,
3489
+ /**
3490
+ * @generated from enum value: APPLE_SECURE_ENCLAVE_ACCESS_POLICY_DEVICE_PASSCODE = 5;
3491
+ */
3492
+ DEVICE_PASSCODE = 5
3493
+ }
3494
+ /**
3495
+ * Describes the enum reallyme.crypto.v1.AppleSecureEnclaveAccessPolicy.
3496
+ */
3497
+ export declare const AppleSecureEnclaveAccessPolicySchema: GenEnum<AppleSecureEnclaveAccessPolicy>;
3498
+ /**
3499
+ * @generated from enum reallyme.crypto.v1.AppleKeychainAccessibility
3500
+ */
3501
+ export declare enum AppleKeychainAccessibility {
3502
+ /**
3503
+ * @generated from enum value: APPLE_KEYCHAIN_ACCESSIBILITY_UNSPECIFIED = 0;
3504
+ */
3505
+ UNSPECIFIED = 0,
3506
+ /**
3507
+ * @generated from enum value: APPLE_KEYCHAIN_ACCESSIBILITY_WHEN_UNLOCKED_THIS_DEVICE_ONLY = 1;
3508
+ */
3509
+ WHEN_UNLOCKED_THIS_DEVICE_ONLY = 1,
3510
+ /**
3511
+ * @generated from enum value: APPLE_KEYCHAIN_ACCESSIBILITY_WHEN_PASSCODE_SET_THIS_DEVICE_ONLY = 2;
3512
+ */
3513
+ WHEN_PASSCODE_SET_THIS_DEVICE_ONLY = 2
3514
+ }
3515
+ /**
3516
+ * Describes the enum reallyme.crypto.v1.AppleKeychainAccessibility.
3517
+ */
3518
+ export declare const AppleKeychainAccessibilitySchema: GenEnum<AppleKeychainAccessibility>;
2088
3519
  /**
2089
3520
  * CryptoVerificationStatus avoids using a bare bool in protocol results where
2090
3521
  * "unset" and "false" need to remain distinguishable.
@@ -2150,21 +3581,3 @@ export declare enum CryptoProviderSupportStatus {
2150
3581
  * Describes the enum reallyme.crypto.v1.CryptoProviderSupportStatus.
2151
3582
  */
2152
3583
  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
- }>;