Examples of CBCBlockCipherMac


Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class DES
        extends JCEMac
    {
        public DES()
        {
            super(new CBCBlockCipherMac(new DESEngine()));
        }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class DESede
        extends JCEMac
    {
        public DESede()
        {
            super(new CBCBlockCipherMac(new DESedeEngine()));
        }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class Skipjack
        extends JCEMac
    {
        public Skipjack()
        {
            super(new CBCBlockCipherMac(new SkipjackEngine()));
        }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class IDEA
        extends JCEMac
    {
        public IDEA()
        {
            super(new CBCBlockCipherMac(new IDEAEngine()));
        }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class RC2
        extends JCEMac
    {
        public RC2()
        {
            super(new CBCBlockCipherMac(new RC2Engine()));
        }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class RC5
        extends JCEMac
    {
        public RC5()
        {
            super(new CBCBlockCipherMac(new RC532Engine()));
        }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class DESede64
        extends JCEMac
    {
        public DESede64()
        {
            super(new CBCBlockCipherMac(new DESedeEngine(), 64));
        }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

        return output;
    }

    private int calculateMac(byte[] data, int dataOff, int dataLen, byte[] macBlock)
    {
        Mac cMac = new CBCBlockCipherMac(cipher, macSize * 8);

        cMac.init(keyParam);

        //
        // build b0
        //
        byte[] b0 = new byte[16];
   
        if (hasAssociatedText())
        {
            b0[0] |= 0x40;
        }
       
        b0[0] |= (((cMac.getMacSize() - 2) / 2) & 0x7) << 3;

        b0[0] |= ((15 - nonce.length) - 1) & 0x7;
       
        System.arraycopy(nonce, 0, b0, 1, nonce.length);
       
        int q = dataLen;
        int count = 1;
        while (q > 0)
        {
            b0[b0.length - count] = (byte)(q & 0xff);
            q >>>= 8;
            count++;
        }
       
        cMac.update(b0, 0, b0.length);
       
        //
        // process associated text
        //
        if (hasAssociatedText())
        {
            int extra;
           
            int textLength = getAssociatedTextLength();
            if (textLength < ((1 << 16) - (1 << 8)))
            {
                cMac.update((byte)(textLength >> 8));
                cMac.update((byte)textLength);
               
                extra = 2;
            }
            else // can't go any higher than 2^32
            {
                cMac.update((byte)0xff);
                cMac.update((byte)0xfe);
                cMac.update((byte)(textLength >> 24));
                cMac.update((byte)(textLength >> 16));
                cMac.update((byte)(textLength >> 8));
                cMac.update((byte)textLength);
               
                extra = 6;
            }

            if (initialAssociatedText != null)
            {
                cMac.update(initialAssociatedText, 0, initialAssociatedText.length);
            }
            if (associatedText.size() > 0)
            {
                byte[] tmp = associatedText.toByteArray();
                cMac.update(tmp, 0, tmp.length);
            }

            extra = (extra + textLength) % 16;
            if (extra != 0)
            {
                for (int i = extra; i != 16; i++)
                {
                    cMac.update((byte)0x00);
                }
            }
        }
        //
        // add the text
        //
        cMac.update(data, dataOff, dataLen);

        return cMac.doFinal(macBlock, 0);
    }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class Mac
        extends JCEMac
    {
        public Mac()
        {
            super(new CBCBlockCipherMac(new IDEAEngine()));
        }
View Full Code Here

Examples of org.bouncycastle.crypto.macs.CBCBlockCipherMac

    public static class DES
        extends JCEMac
    {
        public DES()
        {
            super(new CBCBlockCipherMac(new DESEngine()));
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.