14 Dec, 2016

2 commits


18 Jul, 2016

1 commit

  • This patch adds a chunk size parameter to aead algorithms, just
    like the chunk size for skcipher algorithms.

    However, unlike skcipher we do not currently export this to AEAD
    users. It is only meant to be used by AEAD implementors for now.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

15 Apr, 2016

1 commit


17 Feb, 2016

1 commit


09 Dec, 2015

1 commit


17 Aug, 2015

1 commit


04 Aug, 2015

1 commit


04 Jun, 2015

1 commit


03 Jun, 2015

2 commits

  • As it stands the only non-type safe functions left in the new
    AEAD interface are the cra_init/cra_exit functions. It means
    exposing the ugly __crypto_aead_cast to every AEAD implementor.

    This patch adds type-safe init/exit functions to AEAD. Existing
    algorithms are unaffected while new implementations can simply
    fill in these two instead of cra_init/cra_exit.

    Signed-off-by: Herbert Xu

    Herbert Xu
     
  • The patch updates the DocBook to cover the new AEAD interface
    implementation.

    Signed-off-by: Stephan Mueller
    Signed-off-by: Herbert Xu

    Stephan Mueller
     

28 May, 2015

1 commit

  • This patch defines the behaviour of AD in the new interface more
    clearly. In particular, it specifies that if the user must copy
    the AD to the destination manually when src != dst if they wish
    to guarantee that the destination buffer contains a copy of the
    AD.

    The reason for this is that otherwise every AEAD implementation
    would have to perform such a copy when src != dst. In reality
    most users do in-place processing where src == dst so this is
    not an issue.

    This patch also kills some remaining references to cryptoff.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

25 May, 2015

2 commits


22 May, 2015

3 commits

  • This patch adds the basic structure of the new AEAD type. Unlike
    the current version, there is no longer any concept of geniv. IV
    generation will still be carried out by wrappers but they will be
    normal AEAD algorithms that simply take the IPsec sequence number
    as the IV.

    Signed-off-by: Herbert Xu

    Herbert Xu
     
  • This patch is the first step in the introduction of a new AEAD
    alg type. Unlike normal conversions this patch only renames the
    existing aead_alg structure because there are external references
    to it.

    Those references will be removed after this patch.

    Signed-off-by: Herbert Xu

    Herbert Xu
     
  • The primary user of AEAD, IPsec includes the IV in the AD in
    most cases, except where it is implicitly authenticated by the
    underlying algorithm.

    The way it is currently implemented is a hack because we pass
    the data in piecemeal and the underlying algorithms try to stitch
    them back up into one piece.

    This is why this patch is adding a new interface that allows a
    single SG list to be passed in that contains everything so the
    algorithm implementors do not have to stitch.

    The new interface accepts a single source SG list and a single
    destination SG list. Both must be laid out as follows:

    AD, skipped data, plain/cipher text, ICV

    The ICV is not present from the source during encryption and from
    the destination during decryption.

    For the top-level IPsec AEAD algorithm the plain/cipher text will
    contain the generated (or received) IV.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

13 May, 2015

1 commit

  • This patch converts the top-level aead interface to the new style.
    All user-level AEAD interface code have been moved into crypto/aead.h.

    The allocation/free functions have switched over to the new way of
    allocating tfms.

    This patch also removes the double indrection on setkey so the
    indirection now exists only at the alg level.

    Apart from these there are no user-visible changes.

    Signed-off-by: Herbert Xu

    Herbert Xu
     

01 Aug, 2014

1 commit


11 Jan, 2008

2 commits

  • This patch finally makes the givencrypt/givdecrypt operations available
    to users by adding crypto_aead_givencrypt and crypto_aead_givdecrypt.
    A suite of helpers to allocate and fill in the request is also available.

    Signed-off-by: Herbert Xu

    Herbert Xu
     
  • This patch adds the underlying givcrypt operations for aead and associated
    support elements. The rationale is identical to that of the skcipher
    givcrypt operations, i.e., sometimes only the algorithm knows how the
    IV should be generated.

    A new request type aead_givcrypt_request is added which contains an
    embedded aead_request structure with two new elements to support this
    operation. The new elements are seq and giv. The seq field should
    contain a strictly increasing 64-bit integer which may be used by
    certain IV generators as an input value. The giv field will be used
    to store the generated IV. It does not need to obey the alignment
    requirements of the algorithm because it's not used during the operation.

    The existing iv field must still be available as it will be used to store
    intermediate IVs and the output IV if chaining is desired.

    Signed-off-by: Herbert Xu

    Herbert Xu