Lines Matching refs:op

76 static int xlr_sec_cipher_hash_command(xlr_sec_io_pt op, symkey_desc_pt desc,
78 static xlr_sec_error_t xlr_sec_setup_descriptor(xlr_sec_io_pt op,
81 static xlr_sec_error_t xlr_sec_setup_packet(xlr_sec_io_pt op,
87 static xlr_sec_error_t xlr_sec_setup_cipher(xlr_sec_io_pt op,
89 static xlr_sec_error_t xlr_sec_setup_digest(xlr_sec_io_pt op,
91 static xlr_sec_error_t xlr_sec_setup_cksum(xlr_sec_io_pt op,
93 static xlr_sec_error_t xlr_sec_control_setup(xlr_sec_io_pt op,
142 xlr_sec_io_pt op;
147 op = &cmd->op;
148 if (op == NULL)
166 if (op->flags & XLR_SEC_FLAGS_HIGH_PRIORITY)
170 desc->user.user_src = (uint8_t *) (unsigned long)op->source_buf;
171 desc->user.user_dest = (uint8_t *) (unsigned long)op->dest_buf;
172 desc->user.user_auth = (uint8_t *) (unsigned long)op->auth_dest;
174 if ((op->cipher_type == XLR_SEC_CIPHER_TYPE_ARC4) &&
175 (!op->rc4_state && (op->rc4_loadstate || op->rc4_savestate))) {
180 desc->user.user_state = (uint8_t *) (unsigned long)op->rc4_state;
182 switch (op->cipher_type) {
207 size = op->source_buf_size + iv_len;
213 if (op->cipher_mode == XLR_SEC_CIPHER_MODE_F8 ||
214 op->cipher_mode == XLR_SEC_CIPHER_MODE_CTR)
217 if (op->cipher_type == XLR_SEC_CIPHER_TYPE_NONE) {
218 if (op->source_buf_size != 0) {
220 (uint8_t *)(uintptr_t)op->source_buf,
221 op->source_buf_size);
226 memcpy(desc->user.aligned_src, &op->initial_vector[0], iv_len);
230 (uint8_t *) (unsigned long)op->source_buf, SEC_MAX_FRAG_LEN);
232 desc->next_src_len = op->source_buf_size - SEC_MAX_FRAG_LEN;
234 (uint8_t *) (unsigned long)(op->source_buf + SEC_MAX_FRAG_LEN),
237 op->source_buf_size = SEC_MAX_FRAG_LEN;
238 op->source_buf_size += iv_len;
241 memcpy(desc->user.aligned_src, &op->initial_vector[0], iv_len);
245 (uint8_t *) (unsigned long)op->source_buf, op->source_buf_size);
246 op->source_buf_size += iv_len;
251 op->source_buf = (uint64_t) (unsigned long)desc->user.aligned_src;
256 if (op->cipher_type == XLR_SEC_CIPHER_TYPE_NONE) {
261 op->dest_buf = (uint64_t) (unsigned long)desc->user.aligned_src;
264 XLR_SEC_CMD_DIAG("dest_buf_size = %d \n", op->dest_buf_size);
265 size = op->dest_buf_size + iv_len;
271 if (op->cipher_mode == XLR_SEC_CIPHER_MODE_F8 ||
272 op->cipher_mode == XLR_SEC_CIPHER_MODE_CTR)
274 op->dest_buf = (uint64_t) (unsigned long)desc->user.aligned_dest;
277 ret_val = xlr_sec_cipher_hash_command(op, desc, ses->multi_frag_flag);
283 xlr_sec_cipher_hash_command(xlr_sec_io_pt op, symkey_desc_pt desc,
293 if ((op->digest_type == XLR_SEC_DIGEST_TYPE_NONE) &&
294 (op->cipher_type != XLR_SEC_CIPHER_TYPE_ARC4) &&
295 (op->cipher_mode != XLR_SEC_CIPHER_MODE_F8) &&
296 (op->cipher_type != XLR_SEC_CIPHER_TYPE_KASUMI_F8) &&
297 (op->source_buf_size & 0x7)) {
299 op->source_buf_size);
304 if ((op->cipher_type == XLR_SEC_CIPHER_TYPE_3DES) &&
305 (op->cipher_op == XLR_SEC_CIPHER_OP_DECRYPT))
308 err = xlr_sec_setup_descriptor(op,
314 err = xlr_sec_setup_packet(op,
316 op->digest_type != XLR_SEC_DIGEST_TYPE_NONE ?
335 xlr_sec_setup_descriptor(xlr_sec_io_pt op,
344 if ((err = xlr_sec_setup_cipher(op, &desc->ctl_desc, cfg_vector)) != XLR_SEC_ERR_NONE) {
349 if (op->digest_type != XLR_SEC_DIGEST_TYPE_NONE) {
350 if ((err = xlr_sec_setup_digest(op, &desc->ctl_desc, cfg_vector)) != XLR_SEC_ERR_NONE) {
356 if ((err = xlr_sec_setup_cksum(op, &desc->ctl_desc)) != XLR_SEC_ERR_NONE) {
361 if ((err = xlr_sec_control_setup(op,
379 xlr_sec_setup_packet(xlr_sec_io_pt op,
398 addr = (uint64_t) vtophys((void *)(unsigned long)op->source_buf);
408 * op->source_buf_size is expected to be the Nb double words to
417 len = op->source_buf_size + byte_offset - global_offset;
428 if (op->cipher_offset & 0x7) {
430 op->cipher_offset);
439 cipher_offset_dwords = (op->iv_offset + byte_offset) >> 3;
441 if (op->cipher_mode == XLR_SEC_CIPHER_MODE_F8 ||
442 op->cipher_mode == XLR_SEC_CIPHER_MODE_CTR) {
444 int nlhmac = ((op->source_buf_size + global_offset + 7 - op->cipher_offset) >> 3) & 1;
457 int nlhmac = ((op->source_buf_size + global_offset + 7 - op->cipher_offset) >> 3) & 1;
508 switch (op->pkt_hmac) {
535 switch (op->pkt_hash) {
560 switch (op->pkt_iv) {
588 (unsigned long long)op->source_buf, (unsigned long long)addr);
594 cipher_offset_dwords, op->iv_offset);
597 op->source_buf_size, len_dwords);
607 addr = (uint64_t) vtophys((void *)(unsigned long)op->dest_buf);
613 (unsigned long long)op->dest_buf, (unsigned long long)addr);
629 cipher_offset_dwords = (op->cipher_offset + byte_offset) >> 3;
635 FIELD_VALUE(PKT_DSC_HASHOFF, (op->digest_offset + byte_offset) >> 3) |
644 FIELD_VALUE(PKT_DSC_HASHOFF, (op->digest_offset + byte_offset) >> 3) |
650 if (op->cipher_type == XLR_SEC_CIPHER_TYPE_ARC4)
653 if (op->cipher_type != XLR_SEC_CIPHER_TYPE_NONE) {
654 switch (op->cipher_op) {
679 switch (op->digest_src) {
702 if (op->cksum_type != XLR_SEC_CKSUM_TYPE_NOP) {
703 switch (op->cksum_src) {
726 FIELD_VALUE(PKT_DSC_HASH_BYTE_OFF, (op->digest_offset & 0x7)) |
733 FIELD_VALUE(PKT_DSC_HASH_BYTE_OFF, (op->digest_offset & 0x7)) |
739 switch (op->pkt_lastword) {
778 PKT_DSC_CFB_MASK, op->cfb_mask);
780 PKT_DSC_NONCE_HI, htonl(op->nonce) >> 24);
782 PKT_DSC_NONCE_LOW, htonl(op->nonce) & 0xffffff);
786 PKT_DSC_CFB_MASK, op->cfb_mask);
788 PKT_DSC_NONCE_HI, htonl(op->nonce) >> 24);
790 PKT_DSC_NONCE_LOW, htonl(op->nonce) & 0xffffff);
799 (uint64_t) vtophys((void *)(unsigned long)op->auth_dest)) |
814 if (op->cksum_type == XLR_SEC_CKSUM_TYPE_IP) {
817 (uint64_t) vtophys((void *)(unsigned long)op->cksum_dest));
860 if (op->cipher_type == XLR_SEC_CIPHER_TYPE_ARC4) {
861 op->source_buf -= 0;
862 op->source_buf_size += 0;
863 op->dest_buf -= 0;
997 xlr_sec_setup_cipher(xlr_sec_io_pt op,
1006 switch (op->cipher_type) {
1038 op->rc4_key_len);
1040 op->rc4_loadstate);
1042 op->rc4_savestate);
1043 if (op->rc4_loadstate || op->rc4_savestate)
1056 switch (op->cipher_mode) {
1110 switch (op->cipher_init) {
1134 xlr_sec_setup_digest(xlr_sec_io_pt op,
1144 switch (op->digest_type) {
1215 switch (op->digest_init) {
1234 xlr_sec_setup_cksum(xlr_sec_io_pt op,
1237 switch (op->cksum_type) {
1254 xlr_sec_control_setup(xlr_sec_io_pt op,
1288 cipher_keylen = op->rc4_key_len;
1295 cipher_keylen = op->rc4_key_len;
1304 cipher_keylen = op->rc4_key_len;
1313 cipher_keylen = op->rc4_key_len;
1520 cipher_keylen = op->rc4_key_len;
1530 cipher_keylen = op->rc4_key_len;
1632 cipher_keylen = op->rc4_key_len;
1642 cipher_keylen = op->rc4_key_len;
1744 cipher_keylen = op->rc4_key_len;
1754 cipher_keylen = op->rc4_key_len;
1853 memcpy(cipher_key, &op->crypt_key[0], cipher_keylen);
1856 memcpy(hmac_key, &op->mac_key[0], hmac_keylen);
1858 if (op->rc4_loadstate)
1859 memcpy(cipher_state, (void *)(unsigned long)op->rc4_state,
1861 if (op->rc4_savestate)
2800 xlr_sec_io_pt op = NULL;
2875 op = &cmd->op;
2876 if (!op) {
2877 printf("\n error : not getting op back correctly \n");
2990 ptr = (char *)(unsigned long)(desc->user.aligned_dest + cmd->op.cipher_offset);
3008 if (op->cipher_type != XLR_SEC_CIPHER_TYPE_NONE) {
3009 size = op->dest_buf_size;
3017 SEC_MAX_FRAG_LEN, (caddr_t)(long)desc->user.aligned_dest + op->cipher_offset);
3023 cmd->op.dest_buf_size, (caddr_t)(long)desc->user.aligned_dest + op->cipher_offset);
3030 if (op->digest_type != XLR_SEC_DIGEST_TYPE_NONE) {
3033 switch (op->digest_type) {
3063 op->auth_dest = (uint64_t) (unsigned long)desc->user.user_auth;
3065 if (op->cipher_type == XLR_SEC_CIPHER_TYPE_ARC4 &&
3066 op->rc4_savestate) {
3071 op->rc4_state = (uint64_t) (unsigned long)desc->user.user_state;