craterdog.security.DigitalSeal Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of java-digital-notary-api Show documentation
Show all versions of java-digital-notary-api Show documentation
This project defines the Java interfaces and classes supported by a digital notary.
/************************************************************************
* 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.security;
import craterdog.primitives.Tag;
import craterdog.smart.SmartObject;
/**
* This class defines the attributes that make up an digital seal that is used to sign
* a document.
*
* @author Derk Norton
*/
public final class DigitalSeal extends SmartObject {
/**
* The actual attributes that make up the digital seal.
*/
public SealAttributes attributes;
/**
* A base 32 encoding of the bytes that were generated as a signature of the seal attributes.
* The signature must be generated using the following steps:
*
* - Format the attributes as a string.
* - Extract the characters of the string into a "UTF-8" based byte array.
* - Generate the signature bytes for that array using the algorithm specified in the
Watermark
of the signed document.
* - Encode the signature bytes as a base 32 string using the craterdog.utils.Base32Utils class.
*
*/
public String notarySignature;
/**
* The default constructor ensures that the custom attribute types (like tags) will be
* formatted correctly when printed.
*/
public DigitalSeal() {
this.addSerializableClass(Tag.class);
}
}