# Protocol: Fresh_From_A
# Java Config File: "N:/JavaProjects/genAnBx/src/fresh_from_a/Fresh_From_A.properties"

# Roles/Share
ROLESHARE = ROLE_A
# Aliases for agents A,B from the point of view of ROLE_x
ROLE_A = alice,bob
ROLE_B = alice,bob
# Channels
ROLE_B_channel_ROLE_A_Server_Insecure_role = Server
ROLE_B_channel_ROLE_A_Server_Insecure_host = #
ROLE_B_channel_ROLE_A_Server_Insecure_port = 6666
ROLE_B_channel_ROLE_A_Server_Insecure_type = SSL_PLAIN
ROLE_A_channel_ROLE_B_Client_Insecure_role = Client
ROLE_A_channel_ROLE_B_Client_Insecure_host = 127.0.0.1
ROLE_A_channel_ROLE_B_Client_Insecure_port = 6666
ROLE_A_channel_ROLE_B_Client_Insecure_type = SSL_PLAIN
# Paths
keypath = ../../keystore/
sharepath = ./
anbxjpath = ../../../AnBxJ
# -----------------------------
# Cryptographic Engine settings
# -----------------------------
# Java Cryptography Architecture (JCA) Reference Guide
# https://docs.oracle.com/en/java/javase/11/security/java-cryptography-architecture-jca-reference-guide.html
# see names at
# Java 11 - https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html
# Bouncy Castle - https://www.bouncycastle.org/specifications.html
#
# N.B. Signature Algorithm and (Asymmetric Encryption) Cipher Algorithm
# are automatically detected from the keys used, pre-memorised in keystores.
#
# -----------------------------
# Cipher Algorithm Name/Cipher Algorithm Mode/Cipher Algorithm Padding (Symmetric Encryption)
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#cipher-algorithm-names
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#cipher-algorithm-modes
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#cipher-algorithm-paddings
cipherScheme = AES/CBC/PKCS5Padding
# Key length in bits for ciphers supporting different key lengths
keySize = 256
# -----------------------------
# KeyGenerator Algorithm Name used for dynamic key generation (Symmetric Encryption)
keyGenerationScheme = AES
# Key length in bits for ciphers, used for dynamic key generation, supporting different key lengths 
keyGenerationSize = 256
# -----------------------------
# SecretKeyFactory Algorithm used for Password Based Encryption (PBE) dynamic key generation (Symmetric Encryption)
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.htmld#secretkeyfactory-algorithms
keyGenerationSchemePBE = PBKDF2WithHmacSHA512
# -----------------------------
# KeyPairGenerator Algorithm dynamic creation of Key Pairs (Asymmetric Encryption)
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#keypairgenerator-algorithms
keyPairGenerationScheme = RSA
# KeyPairGenerator key length for dynamic creation of Key Pairs
keyPairGenerationSize = 2048
# -----------------------------
# SecureRandom Number Generation Algorithm
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#securerandom-number-generation-algorithms
secureRandomAlgorithm = SHA1PRNG
# -----------------------------
# KeyGenerator Algorithms for Hmac
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#mac-algorithms
hMacAlgorithm = HmacSHA256
# -----------------------------
# MessageDigest Algorithm (Hash)
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#messagedigest-algorithms
messageDigestAlgorithm = SHA-256
# -----------------------------
# KeyAgreement Algorithm
# https://docs.oracle.com/en/java/javase/11/docs/specs/security/standard-names.html#keyagreement-algorithms
keyAgreementAlgorithm = DH
# Random Exponent length in bit for Diffie-Hellman key agreement
dhRndExpSize = 2048
# -----------------------------
# Asymmetric encryption scheme block mode (experimental)
asymcipherSchemeBlock = RSA
