All Downloads are FREE. Search and download functionalities are using the official Maven repository.

craterdog.identities.Identification Maven / Gradle / Ivy

Go to download

This project defines a set of interfaces and classes that implement digital identities.

There is a newer version: 1.5
Show newest version
/************************************************************************
 * Copyright (c) Crater Dog Technologies(TM).  All Rights Reserved.     *
 ************************************************************************
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.        *
 *                                                                      *
 * This code is free software; you can redistribute it and/or modify it *
 * under the terms of The MIT License (MIT), as published by the Open   *
 * Source Initiative. (See http://opensource.org/licenses/MIT)          *
 ************************************************************************/
package craterdog.identities;

import craterdog.notary.NotaryCertificate;
import craterdog.notary.NotaryKey;
import java.util.Map;


/**
 * This interface defines the methods supported by digital identity management services.  A
 * person or entity may create a digital identity by generating a new notary key and using the
 * private signing key to sign the identity information.  The identity information and the public
 * certificate containing the verification key are available to the public.  Anyone can retrieve
 * the public certificate for the identity and use it to verify documents that were signed by the
 * identity.
 *
 * @author Derk Norton
 */
public interface Identification {

    /**
     * This method creates a new digital identity for a person or entity.  The identity attributes
     * are digitally signed using the specified initial notary key.
     *
     * @param notaryKey The notary key to be used to sign the identity attributes.
     * @return The new digital identity.
     */
    DigitalIdentity createIdentity(NotaryKey notaryKey);

    /**
     * This method creates a new digital identity for a person or entity.  The identity attributes
     * are digitally signed using the specified initial notary key.
     *
     * @param additionalAttributes Any additional attributes about the identity.
     * @param notaryKey The notary key to be used to sign the identity attributes.
     * @return The new digital identity.
     */
    DigitalIdentity createIdentity(Map additionalAttributes, NotaryKey notaryKey);

    /**
     * This method validates the attributes and seals for a digital identity.
     *
     * @param identity The digital identity to be validated.
     * @param certificate The certificate for the key that was used to notarize the identity.
     * @param errors A map containing any errors that were found.
     */
    void validateIdentity(DigitalIdentity identity, NotaryCertificate certificate, Map errors);

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy