19 Jun, 2017
25 commits
-
By adding a struct device *dev to struct engine, we could store the
device used at register time and so use all dev_xxx functions instead of
pr_xxx.Signed-off-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Fix inconsistent format and spelling in hash tests error messages.
Signed-off-by: Gilad Ben-Yossef
Signed-off-by: Herbert Xu -
Trivial fix to spelling mistake in flow_log message
Signed-off-by: Colin Ian King
Reviewed-by: Steve Lin
Signed-off-by: Herbert Xu -
The run-time self-tests fail quite early, as soon as the input block
size is larger than 64 bytes:alg: hash: Test 4 failed for sha1-sun4i-ss
00000000: b9 c9 1e 52 c0 26 d8 39 81 ff f2 3c 99 b1 27 b2
00000010: 30 d6 c9 85One thing to notice is the value of the last word, which is the one
expected (it can sometime be the last two words). The datasheet isn't
very clear about when the digest is ready to retrieve and is seems the
bit SS_DATA_END is cleared when the digest was computed *but* that
doesn't mean the digest is ready to retrieve in the registers.A ndelay(1) is added before reading the computed digest to ensure it is
available in the SS_MD[] registers.Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
The CRYPTO_ALG_KERN_DRIVER_ONLY flag is set for hardware accelerated
ciphers accessible through a kernel driver only. This is the case for
ciphers exposed by the sun4i-ss driver. This patch sets this flag.Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Update the sun4i-ss driver to use the skcipher API instead of the old
ablkcipher one. It's a bit more tricky than s/ablkcipher/skcipher/, but
still nothing special and the driver's logic stays the same.Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Use the GENMASK helper instead of custom calculations to generate masks,
It also helps the readability.Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
A bit is appended at the end of the input buffer for sha1. Simplify the
code assigning it.Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
When sending the last block of data to the engine, it should be padded
so that the total length of the request can be given to the engine as
the last 2 words of the last 64 bytes block.Simplify the calculation of this pad offset.
Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Parts of the bf buffer were dynamically set to 0. Change this to set the
whole buffer to 0 by default to avoid any mistake.Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Do not use DMA is the request is 0 length.
Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Replace custom bit shifts and masks with lower/upper_32_bits helpers.
Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Cosmetic clean up if conditional checks on 0s values.
Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Cosmetic change to avoid having a full screen a variable definitions. It
also helps to see which variables share the same type.Signed-off-by: Antoine Tenart
Tested-by: Corentin Labbe
Acked-by: Corentin Labbe
Signed-off-by: Herbert Xu -
Use more common error logging style.
Signed-off-by: Karim Eshapa
Signed-off-by: Herbert Xu -
- Fixed bugs in example for shash and rng (added missing "*" and " *").
- Corrected pr_info() in calc_hash().
- Added example usage of calc_hash().
- No need for negate PTR_ERR to get error code, as crypto_alloc_rng
already returns negative values like ERR_PTR(-ENOMEM). Fixed.Signed-off-by: Kamil Konieczny
Signed-off-by: Herbert Xu -
We checked (nbytes < bsize) inside the loops so it's not possible to hit
the "goto done;" here. This code is cut and paste from other slightly
different loops where we don't have the check inside the loop.Signed-off-by: Dan Carpenter
Signed-off-by: Herbert Xu -
mix_columns() contains a comment which shows the matrix used by the
MixColumns step of AES, but the last entry in this matrix was incorrectSigned-off-by: Herbert Xu
-
Drop .owner field in mtk_crypto_driver, since platform_driver_register()
will set it automatically.Signed-off-by: Geliang Tang
Signed-off-by: Herbert Xu -
Add more algorithm support for the driver.
Add support for ecb(aes), cfb(aes) and ecb(des3_ede).Signed-off-by: George Cherian
Signed-off-by: Herbert Xu -
Remove the individual encrypt/decrypt function for easch algorithm.
This is in prepration of adding more crypto algorithms supported by
hardware. While at that simplify create_ctx_hdr/create_input_list
function interfaces.Signed-off-by: George Cherian
Signed-off-by: Herbert Xu -
Mailbox interrupt is common and it is not an error interrupt.
So downgrade the print from dev_err to dev_dbg.Signed-off-by: George Cherian
Signed-off-by: Herbert Xu -
This change is to handle sparse warning. Return type of function is a pointer to the structure and
it returns 0. Instead it should return NULL.Signed-off-by: Pushkar Jambhlekar
Signed-off-by: Herbert Xu -
Expose some data about the configuration and operation of the CCP
through debugfs entries: device name, capabilities, configuration,
statistics.Allow the user to reset the counters to zero by writing (any value)
to the 'stats' file. This can be done per queue or per device.Changes from V1:
- Correct polarity of test when destroying devices at module unloadSigned-off-by: Gary R Hook
Signed-off-by: Herbert Xu -
An updated patch that also handles the additional key length requirements
for the AEAD algorithms.The max keysize is not 96. For SHA384/512 it's 128, and for the AEAD
algorithms it's longer still. Extend the max keysize for the
AEAD size for AES256 + HMAC(SHA512).Cc: # 3.6+
Fixes: 357fb60502ede ("crypto: talitos - add sha224, sha384 and sha512 to existing AEAD algorithms")
Signed-off-by: Martin Hicks
Acked-by: Horia Geantă
Signed-off-by: Herbert Xu
10 Jun, 2017
15 commits
-
This patch removes the parent clock 'ethif' in bindings, since we don't
need to control the parent of a clock in current clock framework.Moreover, the clocks are get by name in the driver, thus this change
does not break backwards compatibility.Signed-off-by: Ryder Lee
Reviewed-by: Matthias Brugger
Acked-by: Rob Herring
Signed-off-by: Herbert Xu -
This patch removes redundant clock setting for 'clk_ethif', which is
the parent of 'clk_cryp'. Hence, we just need to handle its child.Signed-off-by: Ryder Lee
Signed-off-by: Herbert Xu -
The test considers a party that already has a private-public
key pair and a party that provides a NULL key. The kernel will
generate the private-public key pair for the latter, computes
the shared secret on both ends and verifies if it's the same.The explicit private-public key pair was copied from
the previous test vector.Signed-off-by: Tudor Ambarus
Signed-off-by: Herbert Xu -
Add support for generating ecc private keys.
Generation of ecc private keys is helpful in a user-space to kernel
ecdh offload because the keys are not revealed to user-space. Private
key generation is also helpful to implement forward secrecy.If the user provides a NULL ecc private key, the kernel will generate it
and further use it for ecdh.Move ecdh's object files below drbg's. drbg must be present in the kernel
at the time of calling.Signed-off-by: Tudor Ambarus
Reviewed-by: Stephan Müller
Signed-off-by: Herbert Xu -
Register the Symmetric crypto algorithms supported by
CNN55XX driver with crypto subsystem.The following Symmetric crypto algorithms are supported,
- aes with cbc, ecb, cfb, xts, ctr and cts modes
- des3_ede with cbc and ecb modesSigned-off-by: Srikanth Jampala
Signed-off-by: Herbert Xu -
Add debugfs support in CNN55XX Physical Function driver.
Provides hardware counters and firmware information.Signed-off-by: Srikanth Jampala
Signed-off-by: Herbert Xu -
Add Physical Function driver support for CNN55XX crypto adapters.
CNN55XX adapters belongs to Cavium NITROX family series,
which accelerate both Symmetric and Asymmetric crypto workloads.These adapters have crypto engines that need firmware
to become operational.Signed-off-by: Srikanth Jampala
Signed-off-by: Herbert Xu -
We forgot to set the error code on this path so it could result in
returning NULL which leads to a NULL dereference.Fixes: db6c43bd2132 ("crypto: KEYS: convert public key and digsig asym to the akcipher api")
Signed-off-by: Dan Carpenter
Signed-off-by: Herbert Xu -
Initialise ctr_completion variable before use.
Signed-off-by: Harsh Jain
Signed-off-by: Stephan Mueller
Signed-off-by: Herbert Xu -
crypto_akcipher_maxsize() asks for the output buffer size without
caring for errors. It allways assume that will be called after
a valid setkey. Comply with it and return what he wants.crypto_akcipher_maxsize() now returns an unsigned int.
Remove the unnecessary check.Signed-off-by: Tudor Ambarus
Signed-off-by: Herbert Xu -
crypto_akcipher_maxsize() asks for the output buffer size without
caring for errors. It allways assume that will be called after
a valid setkey. Comply with it and return what he wants.Signed-off-by: Tudor Ambarus
Signed-off-by: Herbert Xu -
crypto_akcipher_maxsize() asks for the output buffer size without
caring for errors. It allways assume that will be called after
a valid setkey. Comply with it and return what he wants.Signed-off-by: Tudor Ambarus
Signed-off-by: Herbert Xu -
crypto_akcipher_maxsize() asks for the output buffer size without
caring for errors. It allways assume that will be called after
a valid setkey. Comply with it and return what he wants.Signed-off-by: Tudor Ambarus
Signed-off-by: Herbert Xu -
As of now, crypto_akcipher_maxsize() can not be reached without
successfully setting the key for the transformation. akcipher
algorithm implementations check if the key was set and then return
the output buffer size required for the given key.Change the return type to unsigned int and always assume that this
function is called after a successful setkey of the transformation.
akcipher algorithm implementations will remove the check if key is not NULL
and directly return the max size.Signed-off-by: Tudor Ambarus
Signed-off-by: Herbert Xu -
crypto_kpp_maxsize() asks for the output buffer size without
caring for errors. It allways assume that will be called after
a valid setkey. Comply with it and return what he wants.Signed-off-by: Tudor Ambarus
Signed-off-by: Herbert Xu