/linux-4.1.27/drivers/crypto/nx/ |
H A D | nx-aes-cbc.c | 38 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; cbc_aes_nx_set_key() local 44 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_128); cbc_aes_nx_set_key() 48 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_192); cbc_aes_nx_set_key() 52 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_256); cbc_aes_nx_set_key() 59 csbcpb->cpb.hdr.mode = NX_MODE_AES_CBC; cbc_aes_nx_set_key() 60 memcpy(csbcpb->cpb.aes_cbc.key, in_key, key_len); cbc_aes_nx_set_key() 72 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; cbc_aes_nx_crypt() local 80 NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT; cbc_aes_nx_crypt() 82 NX_CPB_FDM(csbcpb) &= ~NX_FDM_ENDE_ENCRYPT; cbc_aes_nx_crypt() 88 processed, csbcpb->cpb.aes_cbc.iv); cbc_aes_nx_crypt() 102 memcpy(desc->info, csbcpb->cpb.aes_cbc.cv, AES_BLOCK_SIZE); cbc_aes_nx_crypt() 104 atomic64_add(csbcpb->csb.processed_byte_count, cbc_aes_nx_crypt()
|
H A D | nx-aes-gcm.c | 40 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; gcm_aes_nx_set_key() local 47 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_128); gcm_aes_nx_set_key() 52 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_192); gcm_aes_nx_set_key() 57 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_256); gcm_aes_nx_set_key() 65 csbcpb->cpb.hdr.mode = NX_MODE_AES_GCM; gcm_aes_nx_set_key() 66 memcpy(csbcpb->cpb.aes_gcm.key, in_key, key_len); gcm_aes_nx_set_key() 197 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; gmac() local 204 csbcpb->cpb.hdr.mode = NX_MODE_AES_GMAC; gmac() 206 NX_CPB_FDM(csbcpb) &= ~NX_FDM_CONTINUATION; gmac() 215 memcpy(csbcpb->cpb.aes_gcm.iv_or_cnt, desc->info, AES_BLOCK_SIZE); gmac() 231 NX_CPB_FDM(csbcpb) |= NX_FDM_INTERMEDIATE; gmac() 233 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; gmac() 238 csbcpb->cpb.aes_gcm.bit_length_data = 0; gmac() 239 csbcpb->cpb.aes_gcm.bit_length_aad = 8 * nbytes; gmac() 246 memcpy(csbcpb->cpb.aes_gcm.in_pat_or_aad, gmac() 247 csbcpb->cpb.aes_gcm.out_pat_or_mac, AES_BLOCK_SIZE); gmac() 248 memcpy(csbcpb->cpb.aes_gcm.in_s0, gmac() 249 csbcpb->cpb.aes_gcm.out_s0, AES_BLOCK_SIZE); gmac() 251 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; gmac() 261 csbcpb->cpb.hdr.mode = NX_MODE_AES_GCM; gmac() 270 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; gcm_empty() local 281 csbcpb->cpb.hdr.mode = NX_MODE_AES_ECB; gcm_empty() 282 memcpy(csbcpb->cpb.aes_ecb.key, csbcpb->cpb.aes_gcm.key, gcm_empty() 283 sizeof(csbcpb->cpb.aes_ecb.key)); gcm_empty() 285 NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT; gcm_empty() 287 NX_CPB_FDM(csbcpb) &= ~NX_FDM_ENDE_ENCRYPT; gcm_empty() 315 memcpy(csbcpb->cpb.aes_gcm.out_pat_or_mac, out, gcm_empty() 319 csbcpb->cpb.hdr.mode = NX_MODE_AES_GCM; gcm_empty() 325 memset(csbcpb->cpb.aes_ecb.key, 0, sizeof(csbcpb->cpb.aes_ecb.key)); gcm_empty() 334 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; gcm_aes_nx_crypt() local 359 csbcpb->cpb.aes_gcm.bit_length_aad = req->assoclen * 8; gcm_aes_nx_crypt() 361 rc = nx_gca(nx_ctx, req, csbcpb->cpb.aes_gcm.in_pat_or_aad); gcm_aes_nx_crypt() 367 NX_CPB_FDM(csbcpb) &= ~NX_FDM_CONTINUATION; gcm_aes_nx_crypt() 369 NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT; gcm_aes_nx_crypt() 371 NX_CPB_FDM(csbcpb) &= ~NX_FDM_ENDE_ENCRYPT; gcm_aes_nx_crypt() 378 csbcpb->cpb.aes_gcm.bit_length_data = nbytes * 8; gcm_aes_nx_crypt() 382 csbcpb->cpb.aes_gcm.iv_or_cnt); gcm_aes_nx_crypt() 388 NX_CPB_FDM(csbcpb) |= NX_FDM_INTERMEDIATE; gcm_aes_nx_crypt() 390 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; gcm_aes_nx_crypt() 398 memcpy(desc.info, csbcpb->cpb.aes_gcm.out_cnt, AES_BLOCK_SIZE); gcm_aes_nx_crypt() 399 memcpy(csbcpb->cpb.aes_gcm.in_pat_or_aad, gcm_aes_nx_crypt() 400 csbcpb->cpb.aes_gcm.out_pat_or_mac, AES_BLOCK_SIZE); gcm_aes_nx_crypt() 401 memcpy(csbcpb->cpb.aes_gcm.in_s0, gcm_aes_nx_crypt() 402 csbcpb->cpb.aes_gcm.out_s0, AES_BLOCK_SIZE); gcm_aes_nx_crypt() 404 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; gcm_aes_nx_crypt() 407 atomic64_add(csbcpb->csb.processed_byte_count, gcm_aes_nx_crypt() 416 scatterwalk_map_and_copy(csbcpb->cpb.aes_gcm.out_pat_or_mac, gcm_aes_nx_crypt() 422 u8 *otag = csbcpb->cpb.aes_gcm.out_pat_or_mac; gcm_aes_nx_crypt()
|
H A D | nx-aes-ecb.c | 38 struct nx_csbcpb *csbcpb = (struct nx_csbcpb *)nx_ctx->csbcpb; ecb_aes_nx_set_key() local 44 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_128); ecb_aes_nx_set_key() 48 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_192); ecb_aes_nx_set_key() 52 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_256); ecb_aes_nx_set_key() 59 csbcpb->cpb.hdr.mode = NX_MODE_AES_ECB; ecb_aes_nx_set_key() 60 memcpy(csbcpb->cpb.aes_ecb.key, in_key, key_len); ecb_aes_nx_set_key() 72 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; ecb_aes_nx_crypt() local 80 NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT; ecb_aes_nx_crypt() 82 NX_CPB_FDM(csbcpb) &= ~NX_FDM_ENDE_ENCRYPT; ecb_aes_nx_crypt() 103 atomic64_add(csbcpb->csb.processed_byte_count, ecb_aes_nx_crypt()
|
H A D | nx-aes-xcbc.c | 45 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; nx_xcbc_set_key() local 55 memcpy(csbcpb->cpb.aes_xcbc.key, in_key, key_len); nx_xcbc_set_key() 74 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; nx_xcbc_empty() local 82 csbcpb->cpb.hdr.mode = NX_MODE_AES_ECB; nx_xcbc_empty() 83 memcpy(key, csbcpb->cpb.aes_xcbc.key, AES_BLOCK_SIZE); nx_xcbc_empty() 84 memcpy(csbcpb->cpb.aes_ecb.key, key, AES_BLOCK_SIZE); nx_xcbc_empty() 85 NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT; nx_xcbc_empty() 120 memcpy(csbcpb->cpb.aes_ecb.key, keys[0], AES_BLOCK_SIZE); nx_xcbc_empty() 145 csbcpb->cpb.hdr.mode = NX_MODE_AES_XCBC_MAC; nx_xcbc_empty() 146 memcpy(csbcpb->cpb.aes_xcbc.key, key, AES_BLOCK_SIZE); nx_xcbc_empty() 147 NX_CPB_FDM(csbcpb) &= ~NX_FDM_ENDE_ENCRYPT; nx_xcbc_empty() 155 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; nx_crypto_ctx_aes_xcbc_init2() local 164 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_128); nx_crypto_ctx_aes_xcbc_init2() 165 csbcpb->cpb.hdr.mode = NX_MODE_AES_XCBC_MAC; nx_crypto_ctx_aes_xcbc_init2() 185 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; nx_xcbc_update() local 270 if (NX_CPB_FDM(csbcpb) & NX_FDM_CONTINUATION) { nx_xcbc_update() 271 memcpy(csbcpb->cpb.aes_xcbc.cv, nx_xcbc_update() 272 csbcpb->cpb.aes_xcbc.out_cv_mac, nx_xcbc_update() 276 NX_CPB_FDM(csbcpb) |= NX_FDM_INTERMEDIATE; nx_xcbc_update() 290 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; nx_xcbc_update() 311 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; nx_xcbc_final() local 319 if (NX_CPB_FDM(csbcpb) & NX_FDM_CONTINUATION) { nx_xcbc_final() 322 memcpy(csbcpb->cpb.aes_xcbc.cv, nx_xcbc_final() 323 csbcpb->cpb.aes_xcbc.out_cv_mac, AES_BLOCK_SIZE); nx_xcbc_final() 336 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; nx_xcbc_final() 371 memcpy(out, csbcpb->cpb.aes_xcbc.out_cv_mac, AES_BLOCK_SIZE); nx_xcbc_final()
|
H A D | nx-aes-ccm.c | 40 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; ccm_aes_nx_set_key() local 47 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_128); ccm_aes_nx_set_key() 55 csbcpb->cpb.hdr.mode = NX_MODE_AES_CCM; ccm_aes_nx_set_key() 56 memcpy(csbcpb->cpb.aes_ccm.key, in_key, key_len); ccm_aes_nx_set_key() 204 b0 = nx_ctx->csbcpb->cpb.aes_ccm.in_pat_or_b0; generate_pat() 207 * operation on 2 AES blocks, B0 (stored in the csbcpb) and B1, generate_pat() 209 b0 = nx_ctx->csbcpb->cpb.aes_ccm.in_pat_or_b0; generate_pat() 272 NX_CPB_FDM(nx_ctx->csbcpb) |= NX_FDM_ENDE_ENCRYPT; generate_pat() 273 NX_CPB_FDM(nx_ctx->csbcpb) |= NX_FDM_INTERMEDIATE; generate_pat() 275 result = nx_ctx->csbcpb->cpb.aes_ccm.out_pat_or_mac; generate_pat() 349 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; ccm_nx_decrypt() local 367 csbcpb->cpb.aes_ccm.in_pat_or_b0); ccm_nx_decrypt() 379 NX_CPB_FDM(csbcpb) |= NX_FDM_INTERMEDIATE; ccm_nx_decrypt() 381 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; ccm_nx_decrypt() 383 NX_CPB_FDM(nx_ctx->csbcpb) &= ~NX_FDM_ENDE_ENCRYPT; ccm_nx_decrypt() 387 csbcpb->cpb.aes_ccm.iv_or_ctr); ccm_nx_decrypt() 399 memcpy(desc->info, csbcpb->cpb.aes_ccm.out_ctr, AES_BLOCK_SIZE); ccm_nx_decrypt() 400 memcpy(csbcpb->cpb.aes_ccm.in_pat_or_b0, ccm_nx_decrypt() 401 csbcpb->cpb.aes_ccm.out_pat_or_mac, AES_BLOCK_SIZE); ccm_nx_decrypt() 402 memcpy(csbcpb->cpb.aes_ccm.in_s0, ccm_nx_decrypt() 403 csbcpb->cpb.aes_ccm.out_s0, AES_BLOCK_SIZE); ccm_nx_decrypt() 405 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; ccm_nx_decrypt() 409 atomic64_add(csbcpb->csb.processed_byte_count, ccm_nx_decrypt() 415 rc = memcmp(csbcpb->cpb.aes_ccm.out_pat_or_mac, priv->oauth_tag, ccm_nx_decrypt() 426 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; ccm_nx_encrypt() local 436 csbcpb->cpb.aes_ccm.in_pat_or_b0); ccm_nx_encrypt() 447 NX_CPB_FDM(csbcpb) |= NX_FDM_INTERMEDIATE; ccm_nx_encrypt() 449 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; ccm_nx_encrypt() 451 NX_CPB_FDM(csbcpb) |= NX_FDM_ENDE_ENCRYPT; ccm_nx_encrypt() 455 csbcpb->cpb.aes_ccm.iv_or_ctr); ccm_nx_encrypt() 467 memcpy(desc->info, csbcpb->cpb.aes_ccm.out_ctr, AES_BLOCK_SIZE); ccm_nx_encrypt() 468 memcpy(csbcpb->cpb.aes_ccm.in_pat_or_b0, ccm_nx_encrypt() 469 csbcpb->cpb.aes_ccm.out_pat_or_mac, AES_BLOCK_SIZE); ccm_nx_encrypt() 470 memcpy(csbcpb->cpb.aes_ccm.in_s0, ccm_nx_encrypt() 471 csbcpb->cpb.aes_ccm.out_s0, AES_BLOCK_SIZE); ccm_nx_encrypt() 473 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; ccm_nx_encrypt() 477 atomic64_add(csbcpb->csb.processed_byte_count, ccm_nx_encrypt() 485 scatterwalk_map_and_copy(csbcpb->cpb.aes_ccm.out_pat_or_mac, ccm_nx_encrypt()
|
H A D | nx-sha512.c | 44 NX_CPB_SET_DIGEST_SIZE(nx_ctx->csbcpb, NX_DS_SHA512); nx_crypto_ctx_sha512_init() 73 struct nx_csbcpb *csbcpb = (struct nx_csbcpb *)nx_ctx->csbcpb; nx_sha512_update() local 95 memcpy(csbcpb->cpb.sha512.message_digest, sctx->state, SHA512_DIGEST_SIZE); nx_sha512_update() 96 NX_CPB_FDM(csbcpb) |= NX_FDM_INTERMEDIATE; nx_sha512_update() 97 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; nx_sha512_update() 160 memcpy(csbcpb->cpb.sha512.input_partial_digest, nx_sha512_update() 161 csbcpb->cpb.sha512.message_digest, nx_sha512_update() 186 memcpy(sctx->state, csbcpb->cpb.sha512.message_digest, SHA512_DIGEST_SIZE); nx_sha512_update() 196 struct nx_csbcpb *csbcpb = (struct nx_csbcpb *)nx_ctx->csbcpb; nx_sha512_final() local 216 memcpy(csbcpb->cpb.sha512.input_partial_digest, sctx->state, nx_sha512_final() 218 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; nx_sha512_final() 219 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; nx_sha512_final() 221 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; nx_sha512_final() 222 NX_CPB_FDM(csbcpb) &= ~NX_FDM_CONTINUATION; nx_sha512_final() 225 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; nx_sha512_final() 229 csbcpb->cpb.sha512.message_bit_length_lo = count0; nx_sha512_final() 260 memcpy(out, csbcpb->cpb.sha512.message_digest, SHA512_DIGEST_SIZE); nx_sha512_final()
|
H A D | nx-aes-ctr.c | 39 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; ctr_aes_nx_set_key() local 45 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_128); ctr_aes_nx_set_key() 49 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_192); ctr_aes_nx_set_key() 53 NX_CPB_SET_KEY_SIZE(csbcpb, NX_KS_AES_256); ctr_aes_nx_set_key() 60 csbcpb->cpb.hdr.mode = NX_MODE_AES_CTR; ctr_aes_nx_set_key() 61 memcpy(csbcpb->cpb.aes_ctr.key, in_key, key_len); ctr_aes_nx_set_key() 90 struct nx_csbcpb *csbcpb = nx_ctx->csbcpb; ctr_aes_nx_crypt() local 101 processed, csbcpb->cpb.aes_ctr.iv); ctr_aes_nx_crypt() 115 memcpy(desc->info, csbcpb->cpb.aes_cbc.cv, AES_BLOCK_SIZE); ctr_aes_nx_crypt() 118 atomic64_add(csbcpb->csb.processed_byte_count, ctr_aes_nx_crypt()
|
H A D | nx-sha256.c | 45 NX_CPB_SET_DIGEST_SIZE(nx_ctx->csbcpb, NX_DS_SHA256); nx_crypto_ctx_sha256_init() 73 struct nx_csbcpb *csbcpb = (struct nx_csbcpb *)nx_ctx->csbcpb; nx_sha256_update() local 95 memcpy(csbcpb->cpb.sha256.message_digest, sctx->state, SHA256_DIGEST_SIZE); nx_sha256_update() 96 NX_CPB_FDM(csbcpb) |= NX_FDM_INTERMEDIATE; nx_sha256_update() 97 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; nx_sha256_update() 156 memcpy(csbcpb->cpb.sha256.input_partial_digest, nx_sha256_update() 157 csbcpb->cpb.sha256.message_digest, nx_sha256_update() 183 memcpy(sctx->state, csbcpb->cpb.sha256.message_digest, SHA256_DIGEST_SIZE); nx_sha256_update() 193 struct nx_csbcpb *csbcpb = (struct nx_csbcpb *)nx_ctx->csbcpb; nx_sha256_final() local 212 memcpy(csbcpb->cpb.sha256.input_partial_digest, sctx->state, SHA256_DIGEST_SIZE); nx_sha256_final() 213 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; nx_sha256_final() 214 NX_CPB_FDM(csbcpb) |= NX_FDM_CONTINUATION; nx_sha256_final() 216 NX_CPB_FDM(csbcpb) &= ~NX_FDM_INTERMEDIATE; nx_sha256_final() 217 NX_CPB_FDM(csbcpb) &= ~NX_FDM_CONTINUATION; nx_sha256_final() 220 csbcpb->cpb.sha256.message_bit_length = (u64) (sctx->count * 8); nx_sha256_final() 254 memcpy(out, csbcpb->cpb.sha256.message_digest, SHA256_DIGEST_SIZE); nx_sha256_final()
|
H A D | nx-842.c | 61 /* Check the valid bit within the csbcpb valid field */ 64 /* CE macros operate on the completion_extension field bits in the csbcpb. 232 struct nx_csbcpb csbcpb; member in struct:nx842_workmem::__anon3815::__anon3816 336 struct nx_csbcpb *csbcpb; nx842_compress() local 380 csbcpb = &workmem->csbcpb; nx842_compress() 381 memset(csbcpb, 0, sizeof(*csbcpb)); nx842_compress() 382 op.csbcpb = nx842_get_pa(csbcpb); nx842_compress() 448 ret = nx842_validate_result(dev, &csbcpb->csb); nx842_compress() 472 size = csbcpb->csb.processed_byte_count; nx842_compress() 536 struct nx_csbcpb *csbcpb; nx842_decompress() local 575 csbcpb = &workmem->csbcpb; nx842_decompress() 576 memset(csbcpb, 0, sizeof(*csbcpb)); nx842_decompress() 577 op.csbcpb = nx842_get_pa(csbcpb); nx842_decompress() 646 ret = nx842_validate_result(dev, &csbcpb->csb); nx842_decompress() 654 outbuf += csbcpb->csb.processed_byte_count; nx842_decompress()
|
H A D | nx.c | 322 nx_ctx->csbcpb->csb.valid |= NX_CSB_VALID_BIT; nx_ctx_init() 325 nx_ctx->op.csbcpb = __pa(nx_ctx->csbcpb); nx_ctx_init() 333 nx_ctx->op_aead.csbcpb = __pa(nx_ctx->csbcpb_aead); nx_ctx_init() 615 /* the csbcpb and scatterlists must be 4K aligned pages */ nx_crypto_ctx_init() 616 nx_ctx->csbcpb = (struct nx_csbcpb *)(round_up((u64)nx_ctx->kmem, nx_crypto_ctx_init() 618 nx_ctx->in_sg = (struct nx_sg *)((u8 *)nx_ctx->csbcpb + NX_PAGE_SIZE); nx_crypto_ctx_init() 692 nx_ctx->csbcpb = NULL; nx_crypto_ctx_exit()
|
H A D | nx.h | 131 struct nx_csbcpb *csbcpb; /* aligned page given to phyp @ hcall time */ member in struct:nx_crypto_ctx 133 struct nx_csbcpb *csbcpb_aead; /* secondary csbcpb used by AEAD algs */
|
/linux-4.1.27/arch/powerpc/include/asm/ |
H A D | vio.h | 67 * @csbcpb: Logical real address of the 4k naturally-aligned storage block 78 u64 csbcpb; member in struct:vio_pfo_op
|
/linux-4.1.27/arch/powerpc/kernel/ |
H A D | vio.c | 1128 op->outlen, op->csbcpb); vio_h_cop_sync()
|