Skip to main content

Service

Enum Service 

Source
#[repr(u16)]
pub enum Service {
Show 256 variants Sha1 = 0, Sha224 = 1, Sha256 = 2, Sha384 = 3, Sha512 = 4, Sha512_224 = 5, Sha512_256 = 6, Sha3_224 = 10, Sha3_256 = 11, Sha3_384 = 12, Sha3_512 = 13, Shake128 = 20, Shake256 = 21, CShake128 = 22, CShake256 = 23, Kmac128 = 24, Kmac256 = 25, KmacXof128 = 26, KmacXof256 = 27, TupleHash128 = 28, TupleHash256 = 29, TupleHashXof128 = 30, TupleHashXof256 = 31, ParallelHash128 = 32, ParallelHash256 = 33, ParallelHashXof128 = 34, ParallelHashXof256 = 35, HmacSha1 = 40, HmacSha224 = 41, HmacSha256 = 42, HmacSha384 = 43, HmacSha512 = 44, HmacSha512_224 = 45, HmacSha512_256 = 46, HmacSha3_224 = 47, HmacSha3_256 = 48, HmacSha3_384 = 49, HmacSha3_512 = 50, CmacAes128 = 60, CmacAes192 = 61, CmacAes256 = 62, Aes128Ecb = 70, Aes128Cbc = 71, Aes128Ctr = 72, Aes128Gcm = 73, Aes128Ccm = 74, Aes128Kw = 75, Aes128Kwp = 76, Aes192Ecb = 80, Aes192Cbc = 81, Aes192Ctr = 82, Aes192Gcm = 83, Aes192Ccm = 84, Aes192Kw = 85, Aes192Kwp = 86, Aes256Ecb = 90, Aes256Cbc = 91, Aes256Ctr = 92, Aes256Gcm = 93, Aes256Ccm = 94, Aes256Kw = 95, Aes256Kwp = 96, Aes128 = 97, Aes192 = 98, Aes256 = 99, CtrDrbgAes128 = 100, CtrDrbgAes192 = 101, CtrDrbgAes256 = 102, HashDrbgSha256 = 103, HashDrbgSha384 = 104, HashDrbgSha512 = 105, HmacDrbgSha256 = 106, HmacDrbgSha384 = 107, HmacDrbgSha512 = 108, HkdfSha1 = 120, HkdfSha256 = 121, HkdfSha384 = 122, HkdfSha512 = 123, KbkdfHmacSha256 = 130, KbkdfHmacSha384 = 131, KbkdfHmacSha512 = 132, KbkdfCmacAes128 = 133, KbkdfCmacAes192 = 134, KbkdfCmacAes256 = 135, Pbkdf2HmacSha1 = 140, Pbkdf2HmacSha224 = 141, Pbkdf2HmacSha256 = 142, Pbkdf2HmacSha384 = 143, Pbkdf2HmacSha512 = 144, RsaKeygen2048 = 150, RsaPkcs1v15Sign2048 = 151, RsaPssSign2048 = 152, RsaOaep2048 = 153, RsaPkcs1v15Verify2048 = 154, RsaPssVerify2048 = 155, RsaKeygen3072 = 160, RsaPkcs1v15Sign3072 = 161, RsaPssSign3072 = 162, RsaOaep3072 = 163, RsaPkcs1v15Verify3072 = 164, RsaPssVerify3072 = 165, RsaKeygen4096 = 170, RsaPkcs1v15Sign4096 = 171, RsaPssSign4096 = 172, RsaOaep4096 = 173, RsaPkcs1v15Verify4096 = 174, RsaPssVerify4096 = 175, EcdsaP256Sign = 200, EcdsaP256Verify = 201, EcdsaP256Keygen = 202, EcdsaP384Sign = 210, EcdsaP384Verify = 211, EcdsaP384Keygen = 212, EcdhP256 = 220, EcdhP384 = 221, Ed25519Sign = 230, Ed25519Verify = 231, Ed25519Keygen = 232, Tls12Kdf = 240, Tls13Kdf = 241, MlKem1024Encaps = 300, MlKem1024Decaps = 301, MlKem1024Keygen = 302, MlKem512Encaps = 303, MlKem512Decaps = 304, MlKem512Keygen = 305, MlKem768Encaps = 306, MlKem768Decaps = 307, MlKem768Keygen = 308, MlDsa87Sign = 310, MlDsa87Verify = 311, MlDsa87Keygen = 312, MlDsa44Sign = 313, MlDsa44Verify = 314, MlDsa44Keygen = 315, MlDsa65Sign = 316, MlDsa65Verify = 317, MlDsa65Keygen = 318, SlhDsaSha2256sKeygen = 320, SlhDsaSha2256sSign = 321, SlhDsaSha2256sVerify = 322, SlhDsaSha2128sKeygen = 323, SlhDsaSha2128sSign = 324, SlhDsaSha2128sVerify = 325, SlhDsaSha2128fKeygen = 326, SlhDsaSha2128fSign = 327, SlhDsaSha2128fVerify = 328, SlhDsaSha2192sKeygen = 329, SlhDsaSha2192sSign = 330, SlhDsaSha2192sVerify = 331, SlhDsaSha2192fKeygen = 332, SlhDsaSha2192fSign = 333, SlhDsaSha2192fVerify = 334, SlhDsaSha2256fKeygen = 335, SlhDsaSha2256fSign = 336, SlhDsaSha2256fVerify = 337, SlhDsaShake128sKeygen = 338, SlhDsaShake128sSign = 339, SlhDsaShake128sVerify = 340, SlhDsaShake128fKeygen = 341, SlhDsaShake128fSign = 342, SlhDsaShake128fVerify = 343, SlhDsaShake192sKeygen = 344, SlhDsaShake192sSign = 345, SlhDsaShake192sVerify = 346, SlhDsaShake192fKeygen = 347, SlhDsaShake192fSign = 348, SlhDsaShake192fVerify = 349, SlhDsaShake256sKeygen = 350, SlhDsaShake256sSign = 351, SlhDsaShake256sVerify = 352, SlhDsaShake256fKeygen = 353, SlhDsaShake256fSign = 354, SlhDsaShake256fVerify = 355, LmsSha256M32H5W1Verify = 501, LmsSha256M32H5W2Verify = 503, LmsSha256M32H5W4Verify = 505, LmsSha256M32H5W8Verify = 507, LmsSha256M32H10W1Verify = 509, LmsSha256M32H10W2Verify = 511, LmsSha256M32H10W4Verify = 513, LmsSha256M32H10W8Verify = 515, LmsSha256M32H15W1Verify = 517, LmsSha256M32H15W2Verify = 519, LmsSha256M32H15W4Verify = 521, LmsSha256M32H15W8Verify = 523, LmsSha256M32H20W1Verify = 525, LmsSha256M32H20W2Verify = 527, LmsSha256M32H20W4Verify = 529, LmsSha256M32H20W8Verify = 531, LmsSha256M32H25W1Verify = 533, LmsSha256M32H25W2Verify = 535, LmsSha256M32H25W4Verify = 537, LmsSha256M32H25W8Verify = 539, LmsSha256M24H5W1Verify = 541, LmsSha256M24H5W2Verify = 543, LmsSha256M24H5W4Verify = 545, LmsSha256M24H5W8Verify = 547, LmsSha256M24H10W1Verify = 549, LmsSha256M24H10W2Verify = 551, LmsSha256M24H10W4Verify = 553, LmsSha256M24H10W8Verify = 555, LmsSha256M24H15W1Verify = 557, LmsSha256M24H15W2Verify = 559, LmsSha256M24H15W4Verify = 561, LmsSha256M24H15W8Verify = 563, LmsSha256M24H20W1Verify = 565, LmsSha256M24H20W2Verify = 567, LmsSha256M24H20W4Verify = 569, LmsSha256M24H20W8Verify = 571, LmsSha256M24H25W1Verify = 573, LmsSha256M24H25W2Verify = 575, LmsSha256M24H25W4Verify = 577, LmsSha256M24H25W8Verify = 579, LmsShakeM32H5W1Verify = 581, LmsShakeM32H5W2Verify = 583, LmsShakeM32H5W4Verify = 585, LmsShakeM32H5W8Verify = 587, LmsShakeM32H10W1Verify = 589, LmsShakeM32H10W2Verify = 591, LmsShakeM32H10W4Verify = 593, LmsShakeM32H10W8Verify = 595, LmsShakeM32H15W1Verify = 597, LmsShakeM32H15W2Verify = 599, LmsShakeM32H15W4Verify = 601, LmsShakeM32H15W8Verify = 603, LmsShakeM32H20W1Verify = 605, LmsShakeM32H20W2Verify = 607, LmsShakeM32H20W4Verify = 609, LmsShakeM32H20W8Verify = 611, LmsShakeM32H25W1Verify = 613, LmsShakeM32H25W2Verify = 615, LmsShakeM32H25W4Verify = 617, LmsShakeM32H25W8Verify = 619, LmsShakeM24H5W1Verify = 621, LmsShakeM24H5W2Verify = 623, LmsShakeM24H5W4Verify = 625, LmsShakeM24H5W8Verify = 627, LmsShakeM24H10W1Verify = 629, LmsShakeM24H10W2Verify = 631, LmsShakeM24H10W4Verify = 633, LmsShakeM24H10W8Verify = 635, LmsShakeM24H15W1Verify = 637, LmsShakeM24H15W2Verify = 639, LmsShakeM24H15W4Verify = 641, LmsShakeM24H15W8Verify = 643, LmsShakeM24H20W1Verify = 645, LmsShakeM24H20W2Verify = 647, LmsShakeM24H20W4Verify = 649, LmsShakeM24H20W8Verify = 651, LmsShakeM24H25W1Verify = 653, LmsShakeM24H25W2Verify = 655, LmsShakeM24H25W4Verify = 657, LmsShakeM24H25W8Verify = 659, XmssVerify = 371, Dh3072 = 380,
}
Expand description

Enumeration of every approved service in the module, at the algorithm-and-parameter level.

Each variant represents a specific algorithm instantiation (e.g. Aes128Ecb not just Aes). This granularity is necessary because CNSA restrictions operate at the key-size and hash-size level.

Algorithm crates pass the appropriate Service variant to require_allowed at their public entry points.

Variants§

§

Sha1 = 0

§

Sha224 = 1

§

Sha256 = 2

§

Sha384 = 3

§

Sha512 = 4

§

Sha512_224 = 5

§

Sha512_256 = 6

§

Sha3_224 = 10

§

Sha3_256 = 11

§

Sha3_384 = 12

§

Sha3_512 = 13

§

Shake128 = 20

§

Shake256 = 21

§

CShake128 = 22

§

CShake256 = 23

§

Kmac128 = 24

§

Kmac256 = 25

§

KmacXof128 = 26

§

KmacXof256 = 27

§

TupleHash128 = 28

§

TupleHash256 = 29

§

TupleHashXof128 = 30

§

TupleHashXof256 = 31

§

ParallelHash128 = 32

§

ParallelHash256 = 33

§

ParallelHashXof128 = 34

§

ParallelHashXof256 = 35

§

HmacSha1 = 40

§

HmacSha224 = 41

§

HmacSha256 = 42

§

HmacSha384 = 43

§

HmacSha512 = 44

§

HmacSha512_224 = 45

§

HmacSha512_256 = 46

§

HmacSha3_224 = 47

§

HmacSha3_256 = 48

§

HmacSha3_384 = 49

§

HmacSha3_512 = 50

§

CmacAes128 = 60

§

CmacAes192 = 61

§

CmacAes256 = 62

§

Aes128Ecb = 70

§

Aes128Cbc = 71

§

Aes128Ctr = 72

§

Aes128Gcm = 73

§

Aes128Ccm = 74

§

Aes128Kw = 75

§

Aes128Kwp = 76

§

Aes192Ecb = 80

§

Aes192Cbc = 81

§

Aes192Ctr = 82

§

Aes192Gcm = 83

§

Aes192Ccm = 84

§

Aes192Kw = 85

§

Aes192Kwp = 86

§

Aes256Ecb = 90

§

Aes256Cbc = 91

§

Aes256Ctr = 92

§

Aes256Gcm = 93

§

Aes256Ccm = 94

§

Aes256Kw = 95

§

Aes256Kwp = 96

§

Aes128 = 97

AES-128 key construction (gates all AES-128 mode services).

§

Aes192 = 98

AES-192 key construction (gates all AES-192 mode services).

§

Aes256 = 99

AES-256 key construction (gates all AES-256 mode services).

§

CtrDrbgAes128 = 100

§

CtrDrbgAes192 = 101

§

CtrDrbgAes256 = 102

§

HashDrbgSha256 = 103

§

HashDrbgSha384 = 104

§

HashDrbgSha512 = 105

§

HmacDrbgSha256 = 106

§

HmacDrbgSha384 = 107

§

HmacDrbgSha512 = 108

§

HkdfSha1 = 120

§

HkdfSha256 = 121

§

HkdfSha384 = 122

§

HkdfSha512 = 123

§

KbkdfHmacSha256 = 130

§

KbkdfHmacSha384 = 131

§

KbkdfHmacSha512 = 132

§

KbkdfCmacAes128 = 133

§

KbkdfCmacAes192 = 134

§

KbkdfCmacAes256 = 135

§

Pbkdf2HmacSha1 = 140

§

Pbkdf2HmacSha224 = 141

§

Pbkdf2HmacSha256 = 142

§

Pbkdf2HmacSha384 = 143

§

Pbkdf2HmacSha512 = 144

§

RsaKeygen2048 = 150

§

RsaPkcs1v15Sign2048 = 151

§

RsaPssSign2048 = 152

§

RsaOaep2048 = 153

§

RsaPkcs1v15Verify2048 = 154

§

RsaPssVerify2048 = 155

§

RsaKeygen3072 = 160

§

RsaPkcs1v15Sign3072 = 161

§

RsaPssSign3072 = 162

§

RsaOaep3072 = 163

§

RsaPkcs1v15Verify3072 = 164

§

RsaPssVerify3072 = 165

§

RsaKeygen4096 = 170

§

RsaPkcs1v15Sign4096 = 171

§

RsaPssSign4096 = 172

§

RsaOaep4096 = 173

§

RsaPkcs1v15Verify4096 = 174

§

RsaPssVerify4096 = 175

§

EcdsaP256Sign = 200

§

EcdsaP256Verify = 201

§

EcdsaP256Keygen = 202

§

EcdsaP384Sign = 210

§

EcdsaP384Verify = 211

§

EcdsaP384Keygen = 212

§

EcdhP256 = 220

§

EcdhP384 = 221

§

Ed25519Sign = 230

§

Ed25519Verify = 231

§

Ed25519Keygen = 232

§

Tls12Kdf = 240

§

Tls13Kdf = 241

§

MlKem1024Encaps = 300

§

MlKem1024Decaps = 301

§

MlKem1024Keygen = 302

§

MlKem512Encaps = 303

§

MlKem512Decaps = 304

§

MlKem512Keygen = 305

§

MlKem768Encaps = 306

§

MlKem768Decaps = 307

§

MlKem768Keygen = 308

§

MlDsa87Sign = 310

§

MlDsa87Verify = 311

§

MlDsa87Keygen = 312

§

MlDsa44Sign = 313

§

MlDsa44Verify = 314

§

MlDsa44Keygen = 315

§

MlDsa65Sign = 316

§

MlDsa65Verify = 317

§

MlDsa65Keygen = 318

§

SlhDsaSha2256sKeygen = 320

§

SlhDsaSha2256sSign = 321

§

SlhDsaSha2256sVerify = 322

§

SlhDsaSha2128sKeygen = 323

§

SlhDsaSha2128sSign = 324

§

SlhDsaSha2128sVerify = 325

§

SlhDsaSha2128fKeygen = 326

§

SlhDsaSha2128fSign = 327

§

SlhDsaSha2128fVerify = 328

§

SlhDsaSha2192sKeygen = 329

§

SlhDsaSha2192sSign = 330

§

SlhDsaSha2192sVerify = 331

§

SlhDsaSha2192fKeygen = 332

§

SlhDsaSha2192fSign = 333

§

SlhDsaSha2192fVerify = 334

§

SlhDsaSha2256fKeygen = 335

§

SlhDsaSha2256fSign = 336

§

SlhDsaSha2256fVerify = 337

§

SlhDsaShake128sKeygen = 338

§

SlhDsaShake128sSign = 339

§

SlhDsaShake128sVerify = 340

§

SlhDsaShake128fKeygen = 341

§

SlhDsaShake128fSign = 342

§

SlhDsaShake128fVerify = 343

§

SlhDsaShake192sKeygen = 344

§

SlhDsaShake192sSign = 345

§

SlhDsaShake192sVerify = 346

§

SlhDsaShake192fKeygen = 347

§

SlhDsaShake192fSign = 348

§

SlhDsaShake192fVerify = 349

§

SlhDsaShake256sKeygen = 350

§

SlhDsaShake256sSign = 351

§

SlhDsaShake256sVerify = 352

§

SlhDsaShake256fKeygen = 353

§

SlhDsaShake256fSign = 354

§

SlhDsaShake256fVerify = 355

§

LmsSha256M32H5W1Verify = 501

§

LmsSha256M32H5W2Verify = 503

§

LmsSha256M32H5W4Verify = 505

§

LmsSha256M32H5W8Verify = 507

§

LmsSha256M32H10W1Verify = 509

§

LmsSha256M32H10W2Verify = 511

§

LmsSha256M32H10W4Verify = 513

§

LmsSha256M32H10W8Verify = 515

§

LmsSha256M32H15W1Verify = 517

§

LmsSha256M32H15W2Verify = 519

§

LmsSha256M32H15W4Verify = 521

§

LmsSha256M32H15W8Verify = 523

§

LmsSha256M32H20W1Verify = 525

§

LmsSha256M32H20W2Verify = 527

§

LmsSha256M32H20W4Verify = 529

§

LmsSha256M32H20W8Verify = 531

§

LmsSha256M32H25W1Verify = 533

§

LmsSha256M32H25W2Verify = 535

§

LmsSha256M32H25W4Verify = 537

§

LmsSha256M32H25W8Verify = 539

§

LmsSha256M24H5W1Verify = 541

§

LmsSha256M24H5W2Verify = 543

§

LmsSha256M24H5W4Verify = 545

§

LmsSha256M24H5W8Verify = 547

§

LmsSha256M24H10W1Verify = 549

§

LmsSha256M24H10W2Verify = 551

§

LmsSha256M24H10W4Verify = 553

§

LmsSha256M24H10W8Verify = 555

§

LmsSha256M24H15W1Verify = 557

§

LmsSha256M24H15W2Verify = 559

§

LmsSha256M24H15W4Verify = 561

§

LmsSha256M24H15W8Verify = 563

§

LmsSha256M24H20W1Verify = 565

§

LmsSha256M24H20W2Verify = 567

§

LmsSha256M24H20W4Verify = 569

§

LmsSha256M24H20W8Verify = 571

§

LmsSha256M24H25W1Verify = 573

§

LmsSha256M24H25W2Verify = 575

§

LmsSha256M24H25W4Verify = 577

§

LmsSha256M24H25W8Verify = 579

§

LmsShakeM32H5W1Verify = 581

§

LmsShakeM32H5W2Verify = 583

§

LmsShakeM32H5W4Verify = 585

§

LmsShakeM32H5W8Verify = 587

§

LmsShakeM32H10W1Verify = 589

§

LmsShakeM32H10W2Verify = 591

§

LmsShakeM32H10W4Verify = 593

§

LmsShakeM32H10W8Verify = 595

§

LmsShakeM32H15W1Verify = 597

§

LmsShakeM32H15W2Verify = 599

§

LmsShakeM32H15W4Verify = 601

§

LmsShakeM32H15W8Verify = 603

§

LmsShakeM32H20W1Verify = 605

§

LmsShakeM32H20W2Verify = 607

§

LmsShakeM32H20W4Verify = 609

§

LmsShakeM32H20W8Verify = 611

§

LmsShakeM32H25W1Verify = 613

§

LmsShakeM32H25W2Verify = 615

§

LmsShakeM32H25W4Verify = 617

§

LmsShakeM32H25W8Verify = 619

§

LmsShakeM24H5W1Verify = 621

§

LmsShakeM24H5W2Verify = 623

§

LmsShakeM24H5W4Verify = 625

§

LmsShakeM24H5W8Verify = 627

§

LmsShakeM24H10W1Verify = 629

§

LmsShakeM24H10W2Verify = 631

§

LmsShakeM24H10W4Verify = 633

§

LmsShakeM24H10W8Verify = 635

§

LmsShakeM24H15W1Verify = 637

§

LmsShakeM24H15W2Verify = 639

§

LmsShakeM24H15W4Verify = 641

§

LmsShakeM24H15W8Verify = 643

§

LmsShakeM24H20W1Verify = 645

§

LmsShakeM24H20W2Verify = 647

§

LmsShakeM24H20W4Verify = 649

§

LmsShakeM24H20W8Verify = 651

§

LmsShakeM24H25W1Verify = 653

§

LmsShakeM24H25W2Verify = 655

§

LmsShakeM24H25W4Verify = 657

§

LmsShakeM24H25W8Verify = 659

§

XmssVerify = 371

§

Dh3072 = 380

Trait Implementations§

Source§

impl Clone for Service

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Service

Source§

impl Debug for Service

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Display for Service

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Service

Source§

impl PartialEq for Service

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Service

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T> ToString for T
where T: Display + ?Sized,

Source§

fn to_string(&self) -> String

Converts the given value to a String. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.