MCPcopy Create free account
hub / github.com/F-Stack/f-stack / padlock_cipher_setup

Function padlock_cipher_setup

freebsd/crypto/via/padlock_cipher.c:121–160  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

119}
120
121int
122padlock_cipher_setup(struct padlock_session *ses,
123 const struct crypto_session_params *csp)
124{
125 union padlock_cw *cw;
126
127 if (csp->csp_cipher_klen != 16 && csp->csp_cipher_klen != 24 &&
128 csp->csp_cipher_klen != 32) {
129 return (EINVAL);
130 }
131
132 cw = &ses->ses_cw;
133 bzero(cw, sizeof(*cw));
134 cw->cw_algorithm_type = PADLOCK_ALGORITHM_TYPE_AES;
135 cw->cw_key_generation = PADLOCK_KEY_GENERATION_SW;
136 cw->cw_intermediate = 0;
137 switch (csp->csp_cipher_klen * 8) {
138 case 128:
139 cw->cw_round_count = PADLOCK_ROUND_COUNT_AES128;
140 cw->cw_key_size = PADLOCK_KEY_SIZE_128;
141#ifdef HW_KEY_GENERATION
142 /* This doesn't buy us much, that's why it is commented out. */
143 cw->cw_key_generation = PADLOCK_KEY_GENERATION_HW;
144#endif
145 break;
146 case 192:
147 cw->cw_round_count = PADLOCK_ROUND_COUNT_AES192;
148 cw->cw_key_size = PADLOCK_KEY_SIZE_192;
149 break;
150 case 256:
151 cw->cw_round_count = PADLOCK_ROUND_COUNT_AES256;
152 cw->cw_key_size = PADLOCK_KEY_SIZE_256;
153 break;
154 }
155 if (csp->csp_cipher_key != NULL) {
156 padlock_cipher_key_setup(ses, csp->csp_cipher_key,
157 csp->csp_cipher_klen);
158 }
159 return (0);
160}
161
162/*
163 * Function checks if the given buffer is already 16 bytes aligned.

Callers 1

padlock_newsessionFunction · 0.85

Calls 2

bzeroFunction · 0.85
padlock_cipher_key_setupFunction · 0.85

Tested by

no test coverage detected