summaryrefslogtreecommitdiffstats
blob: 1c1a29e06cedb0612089f9a2a61794c26df81a22 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
/*
 * Copyright (c) 2013-2015, Isode Limited, London, England.
 * All rights reserved.
 */
package com.isode.stroke.crypto;

import com.isode.stroke.base.ByteArray;
import com.isode.stroke.base.SafeByteArray;

public abstract class CryptoProvider {

    public abstract Hash createSHA1();
    public abstract Hash createMD5();
    public abstract ByteArray getHMACSHA1(final SafeByteArray key, final ByteArray data);
    public abstract ByteArray getHMACSHA1(final ByteArray key, final ByteArray data);
    public abstract boolean isMD5AllowedForCrypto();

    // Convenience
    public ByteArray getSHA1Hash(final SafeByteArray data) {
        return createSHA1().update(data).getHash();
    }

    public ByteArray getSHA1Hash(final ByteArray data) {
        return createSHA1().update(data).getHash();
    }
    
    public ByteArray getMD5Hash(final SafeByteArray data) {
        return createMD5().update(data).getHash();
    }

    public ByteArray getMD5Hash(final ByteArray data) {
        return createMD5().update(data).getHash();
    }

}