A B C D E G H I K M N O P R S T U V

A

ACGException - exception acg.blocks.ACGException.
The ACGException class is thrown to indicate some part of ACG has encountered an error.
ACGException() - Constructor for class acg.blocks.ACGException
 
ACGException(String) - Constructor for class acg.blocks.ACGException
 
ACGGenerate - class acg.tools.ACGGenerate.
The ACGGenerate class takes an ACGProtocol and generates a java source file that implements the actions of that protocol member.
ACGGenerate(ACGProtocol) - Constructor for class acg.tools.ACGGenerate
Creates an ACGGenerate object, populating it with data from ap.
ACGObject - interface acg.blocks.ACGObject.
The ACGObject interface defines the behavior that a top-level message element should provide.
ACGProtocol - class acg.tools.ACGProtocol.
The ACGProtocol class represents the messages sent by a single party in a protocol.

The ACGProtocol class is used by AthenaTranslation classes to describe the interactions among parties.
ACGProtocol() - Constructor for class acg.tools.ACGProtocol
Creates a new, empty ACGProtocol object.
ACGUtils - class acg.blocks.ACGUtils.
The ACGUtils class consists of constants that define the different types that can be found in a protocol description.
ACGUtils() - Constructor for class acg.blocks.ACGUtils
 
addConcatPart(Message) - Method in class acg.tools.Message
 
addEncryptPart(Message) - Method in class acg.tools.Message
 
addNewVar(Variable) - Method in class acg.tools.ACGProtocol
 
addPart(Variable) - Method in class acg.tools.Message
 
addRound(Message, Message) - Method in class acg.tools.ACGProtocol
Adds a description of a round to this ACGProtocol
addVar(Variable) - Method in class acg.tools.ACGProtocol
 
any - Variable in class acg.blocks.EncryptedAO
True if the key is unable to be provided.
APGTokenizer - class acg.tools.APGTokenizer.
The APGTokenizer class is used to tokenize an APG input file into protocol sized chunks.
APGTokenizer(String) - Constructor for class acg.tools.APGTokenizer
Constructs an APGTokenizer object on the given file.
AsyEncryptedAO - class acg.blocks.AsyEncryptedAO.
The AsyEncryptedAO class represents an encrypted message which uses asymmetric keys.

Warning! This is included as an example of what Asymmetric Encryption support would probably look like.
AsyEncryptedAO() - Constructor for class acg.blocks.AsyEncryptedAO
 
AsyEncryptedAO(byte[], Cipher, Key, Key, String, SecureRandom) - Constructor for class acg.blocks.AsyEncryptedAO
 
AsyEncryptedAO(Cipher, Key, Key, String, SecureRandom) - Constructor for class acg.blocks.AsyEncryptedAO
Creates an AsyEncryptedAO object without providing a message.
AthenaTokenizer - class acg.tools.AthenaTokenizer.
The AthenaTokenizer class takes an input file generated by Athena, and parses through the file.
AthenaTokenizer(String) - Constructor for class acg.tools.AthenaTokenizer
Constructs an AthenaTokenizer object, reading from the given athenaFile.
AthenaTranslation - class acg.tools.AthenaTranslation.
The AthenaTranslation class is given data from a single protocol output by Athena, and then constructs an ACGProtocol for every party to the protocol.
AthenaTranslation() - Constructor for class acg.tools.AthenaTranslation
Constructs an empty AthenaTranslation object.

B

byteArrayToInt(byte[], int) - Static method in class acg.blocks.EncryptedAO
A convenience method for converting byte arrays of length 4 to 32 bit integers.
byteArrayToInt16(byte[], int) - Static method in class acg.blocks.KeyAO
Converts two bytes into an integer (of 16 bits).
bytesToObjects(byte[]) - Static method in class acg.blocks.ACGUtils
Deserializes a message into ACGObjects.

C

cipherMessage - Variable in class acg.blocks.EncryptedAO
Byte array of encrypted serialized ACGObjects.

D

decryptAndVerify() - Method in class acg.blocks.EncryptedAO
Decrypts and verifies the message.

E

encrypt() - Method in class acg.blocks.EncryptedAO
Takes the message in plainMessage (M), prepends randBytes (R, currently 16) bytes of randomness, encrypts the message (E_K1), and then prepends a HMAC (HMAC_K2) of the encrypted message to cipherMessage.
encrypted - Variable in class acg.blocks.EncryptedAO
True if plainMessage has not been set.
EncryptedAO - class acg.blocks.EncryptedAO.
The EncryptedAO abstract class represents an encrypted message consisting of ACGObjects.
EncryptedAO() - Constructor for class acg.blocks.EncryptedAO
Sets initialized, encrypted, and any to false.
EncryptedAO(byte[], Cipher, Key, SecureRandom) - Constructor for class acg.blocks.EncryptedAO
A constructor that will call initializeCrypto with theCipher, theKey, and theRandom.
endProtocol() - Method in class acg.tools.AthenaTranslation
Called when a protocol is finished.
equals(KeyAO) - Method in class acg.blocks.KeyAO
 
equals(NonceAO) - Method in class acg.blocks.NonceAO
 
equals(Object) - Method in class acg.tools.Variable
 
equals(PrincipalAO) - Method in class acg.blocks.PrincipalAO
 

G

generateProtocol() - Method in class acg.tools.ACGGenerate
Generates the source code.
GenerateTest - class acg.test.GenerateTest.
The GenerateTest was written to test out ACG itself.
GenerateTest() - Constructor for class acg.test.GenerateTest
 
getAllVars() - Method in class acg.tools.ACGProtocol
 
getCode() - Method in class acg.tools.ACGGenerate
 
getComment() - Method in class acg.tools.ACGProtocol
 
getConstructVars() - Method in class acg.tools.ACGProtocol
 
getEncryptVar() - Method in class acg.tools.Message
 
getInRounds() - Method in class acg.tools.ACGProtocol
 
getKey() - Method in class acg.blocks.KeyAO
 
getLength() - Method in class acg.tools.Message
 
getMessage() - Method in class acg.blocks.EncryptedAO
 
getName() - Method in class acg.tools.ACGProtocol
 
getName() - Method in class acg.tools.Variable
 
getNewVars() - Method in class acg.tools.ACGProtocol
 
getNonceValue() - Method in class acg.blocks.NonceAO
 
getOutRounds() - Method in class acg.tools.ACGProtocol
 
getParties() - Method in class acg.tools.AthenaTranslation
 
getParts() - Method in class acg.tools.Message
 
getPrincipal() - Method in class acg.blocks.PrincipalAO
 
getType() - Method in class acg.tools.Message
 
getType() - Method in class acg.tools.Variable
 
getTypeID() - Method in interface acg.blocks.ACGObject
 
getTypeID() - Method in class acg.blocks.AsyEncryptedAO
 
getTypeID() - Method in class acg.blocks.EncryptedAO
 
getTypeID() - Method in class acg.blocks.KeyAO
 
getTypeID() - Method in class acg.blocks.NonceAO
 
getTypeID() - Method in class acg.blocks.PrincipalAO
 
getTypeID() - Method in class acg.blocks.SymEncryptedAO
 

H

hasMoreTokens() - Method in class acg.tools.APGTokenizer
 
hasMoreTokens() - Method in class acg.tools.AthenaTokenizer
 

I

initialize(String) - Method in class acg.tools.AthenaTranslation
Called by AthenaTokenizer when it finds a new string with the string "Protocol" in it.
initializeCrypto(Cipher, Key, Key, String, SecureRandom) - Method in class acg.blocks.AsyEncryptedAO
 
initializeCrypto(Cipher, Key, SecureRandom) - Method in class acg.blocks.EncryptedAO
Sets the given parameters in this object, generates messageKey and macKey, then sets initialized to true.
initialized - Variable in class acg.blocks.EncryptedAO
True if mySecretKey, myCipher, and randGen have been initialized.
initializeKey(Key) - Method in class acg.blocks.KeyAO
Initializes the KeyAO object with this key.
inputBytes(byte[], int) - Method in interface acg.blocks.ACGObject
Initializes an empty ACGObject with the data values from a serialized object.
inputBytes(byte[], int) - Method in class acg.blocks.EncryptedAO
Reads from a byte array, storing the encrypted and deserialized version of this object in a variable.
inputBytes(byte[], int) - Method in class acg.blocks.KeyAO
Deserializes this KeyAO object.
inputBytes(byte[], int) - Method in class acg.blocks.NonceAO
Deserializes the NonceAO object.
inputBytes(byte[], int) - Method in class acg.blocks.PrincipalAO
Deserializes this PrincipalAO object from the given input.
int16ToByteArray(int) - Static method in class acg.blocks.KeyAO
Converts the integer into two bytes.
intToByteArray(int) - Static method in class acg.blocks.EncryptedAO
A convenience method for converting 32 bit integers to a byte array of length 4.

byte[0] = bits 7 to 0
byte[1] = bits 15 to 8
byte[2] = bits 23 to 16
byte[3] = bits 31 to 24

K

KeyAO - class acg.blocks.KeyAO.
The KeyAO class represents a key that can be serialized and deserialized.
KeyAO() - Constructor for class acg.blocks.KeyAO
Creates an empty KeyAO object.
KeyAO(Key) - Constructor for class acg.blocks.KeyAO
Creates a KeyAO object that has been initialized.

M

macKey - Variable in class acg.blocks.EncryptedAO
Derived Secret Key used for computing the HMAC of the encrypted message.
main(String[]) - Static method in class acg.blocks.EncryptedAO
 
main(String[]) - Static method in class acg.blocks.KeyAO
 
main(String[]) - Static method in class acg.blocks.NonceAO
 
main(String[]) - Static method in class acg.blocks.PrincipalAO
 
main(String[]) - Static method in class acg.blocks.SymEncryptedAO
 
main(String[]) - Static method in class acg.test.GenerateTest
 
Message - class acg.tools.Message.
The Message class describes the format of a single message sent or received by a protocol in a single round.
Message() - Constructor for class acg.tools.Message
Constructs an empty message.
messageKey - Variable in class acg.blocks.EncryptedAO
Derived Secret Key used for actually encrypting the message.
myCipher - Variable in class acg.blocks.EncryptedAO
Cipher used to encrypt and decrypt the message.
mySecretKey - Variable in class acg.blocks.EncryptedAO
Key required to encrypt and decrypt the message.

N

nextToken() - Method in class acg.tools.APGTokenizer
 
nextToken() - Method in class acg.tools.AthenaTokenizer
 
NonceAO - class acg.blocks.NonceAO.
The NonceAO represents a nonce, which in this case is currently a random string of 128 bits.
NonceAO() - Constructor for class acg.blocks.NonceAO
Constructs an empty nonce.
NonceAO(SecureRandom) - Constructor for class acg.blocks.NonceAO
Constructs a nonce.

O

objectsToBytes(Vector) - Static method in class acg.blocks.ACGUtils
Constructs a message by calling the outputBytes method on each ACGObject.
outputBytes() - Method in interface acg.blocks.ACGObject
Returns a byte array with the following format: id section (1 byte), a length section (from 1 to 4 bytes) which records the length of the data section, and a data section (variable length).
outputBytes() - Method in class acg.blocks.EncryptedAO
If any is true, outputBytes will just return whatever it received in inputBytes.
outputBytes() - Method in class acg.blocks.KeyAO
Serializes this KeyAO object.
outputBytes() - Method in class acg.blocks.NonceAO
Serializes the NonceAO object.
outputBytes() - Method in class acg.blocks.PrincipalAO
Serializes this PrincipalAO object.

P

plainMessage - Variable in class acg.blocks.EncryptedAO
Byte array of decrypted serialized ACGObjects.
prependMac(byte[]) - Method in class acg.blocks.EncryptedAO
Prepends a 20 byte HMAC of theMessage using SHA1 and returns the modified array.
PrincipalAO - class acg.blocks.PrincipalAO.
The PrincipalAO object represents principals in our protocol.
PrincipalAO() - Constructor for class acg.blocks.PrincipalAO
Constructs a new PrincipalAO object.
PrincipalAO(String) - Constructor for class acg.blocks.PrincipalAO
Construts a PrincipalAO object with the given string.

R

randGen - Variable in class acg.blocks.EncryptedAO
A SecureRandom object for getting random bytes.

S

selfTest() - Method in class acg.blocks.KeyAO
 
selfTest() - Method in class acg.blocks.NonceAO
 
selfTest() - Method in class acg.blocks.PrincipalAO
 
selfTest() - Method in class acg.blocks.SymEncryptedAO
 
setAny(boolean) - Method in interface acg.blocks.ACGObject
Sets the flag on this ACGObject to return the byte array it received on input bytes without error checking.
setAny(boolean) - Method in class acg.blocks.EncryptedAO
There are three ways EncryptedAO is used.
setAny(boolean) - Method in class acg.blocks.KeyAO
Do nothing method, for interface compatibility.
setAny(boolean) - Method in class acg.blocks.NonceAO
Do nothing method, for interface compatibility.
setAny(boolean) - Method in class acg.blocks.PrincipalAO
A do-nothing method.
setComment(String) - Method in class acg.tools.ACGProtocol
 
setEncryptVar(Variable) - Method in class acg.tools.Message
 
setLength(int) - Method in class acg.tools.Message
A convenience method for AthenaTranslation to parse the text description of the protocol.
setName(String) - Method in class acg.tools.ACGProtocol
Sets the class name to be "_"+s so that the name will be proper Java syntax.
setType(byte) - Method in class acg.tools.Message
 
stringContains(String, String) - Static method in class acg.tools.AthenaTokenizer
 
SymEncryptedAO - class acg.blocks.SymEncryptedAO.
The SymEncryptedAO class represents an encrypted authentication message using symmetric key encryption.
SymEncryptedAO() - Constructor for class acg.blocks.SymEncryptedAO
Creates an empty SymEncryptedAO object.
SymEncryptedAO(byte[], Cipher, Key, SecureRandom) - Constructor for class acg.blocks.SymEncryptedAO
Creates an SymEncryptedAO object with a message.
SymEncryptedAO(Cipher, Key, SecureRandom) - Constructor for class acg.blocks.SymEncryptedAO
Creates an SymEncryptedAO object without providing a message.

T

toString() - Method in class acg.tools.ACGProtocol
 
toString() - Method in class acg.tools.Message
 
toString() - Method in class acg.tools.Variable
 
TYPE_ANY - Static variable in class acg.blocks.ACGUtils
 
TYPE_CONCAT - Static variable in class acg.blocks.ACGUtils
 
TYPE_EMPTY - Static variable in class acg.blocks.ACGUtils
 
TYPE_ENCRYPTED_ASY - Static variable in class acg.blocks.ACGUtils
 
TYPE_ENCRYPTED_SYM - Static variable in class acg.blocks.ACGUtils
 
TYPE_KEY - Static variable in class acg.blocks.ACGUtils
 
TYPE_NONCE - Static variable in class acg.blocks.ACGUtils
 
TYPE_PRINCIPAL - Static variable in class acg.blocks.ACGUtils
 
typeName(byte) - Static method in class acg.blocks.ACGUtils
 

U

update(String) - Method in class acg.tools.AthenaTranslation
Update reads in a string generated by Athena which describes a protocol interaction.

V

Variable - class acg.tools.Variable.
The Variable class is a container class that links the type of the variable with its name.
Variable(byte, String) - Constructor for class acg.tools.Variable
Constructs the variable with the given name and type.

A B C D E G H I K M N O P R S T U V