aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/pgp/affirmation/AffirmationResource.java
blob: e356ccb8e118cdc40340a966e3ddc345bb6cfe38 (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
36
37
38
39
40
41
42
43
package org.sufficientlysecure.keychain.pgp.affirmation;

import org.sufficientlysecure.keychain.pgp.affirmation.resources.GenericHttpsResource;
import org.sufficientlysecure.keychain.pgp.affirmation.resources.UnknownResource;

import java.net.URI;
import java.security.SecureRandom;
import java.util.HashMap;
import java.util.Set;

public abstract class AffirmationResource {

    protected final URI mUri;
    protected final Set<String> mFlags;
    protected final HashMap<String,String> mParams;

    protected AffirmationResource(Set<String> flags, HashMap<String,String> params, URI uri) {
        mFlags = flags;
        mParams = params;
        mUri = uri;
    }

    public abstract boolean verify();

    public static AffirmationResource findResourceType
            (Set<String> flags, HashMap<String,String> params, URI uri) {

        AffirmationResource res;

        res = GenericHttpsResource.create(flags, params, uri);
        if (res != null) {
            return res;
        }

        return new UnknownResource(flags, params, uri);

    }

    public static long generateNonce() {
        return 1234567890L; // new SecureRandom().nextLong();
    }

}