diff --git a/BouncyCastle-JCA/pom.xml b/BouncyCastle-JCA/pom.xml
index 0ba4362..3a8fbea 100644
--- a/BouncyCastle-JCA/pom.xml
+++ b/BouncyCastle-JCA/pom.xml
@@ -6,7 +6,6 @@
BouncyCastle-JCA
3.0.2
CrySL Rules Bundle
-
Eclipse Public License - v2.0
diff --git a/BouncyCastle-JCA/src/Key.crysl b/BouncyCastle-JCA/src/Key.crysl
index 948c3f6..510ddf9 100644
--- a/BouncyCastle-JCA/src/Key.crysl
+++ b/BouncyCastle-JCA/src/Key.crysl
@@ -2,14 +2,16 @@ SPEC java.security.Key
OBJECTS
byte[] keyMaterial;
-
+
EVENTS
ge1: keyMaterial = getEncoded();
GetEnc := ge1;
-
+
ORDER
GetEnc*
+
+REQUIRES
+ generatedKey[this, _] || generatedPubkey[this] || generatedPrivkey[this];
ENSURES
preparedKeyMaterial[keyMaterial] after GetEnc;
-
\ No newline at end of file
diff --git a/BouncyCastle-JCA/src/KeyPair.crysl b/BouncyCastle-JCA/src/KeyPair.crysl
index 0baff04..b98f2ab 100644
--- a/BouncyCastle-JCA/src/KeyPair.crysl
+++ b/BouncyCastle-JCA/src/KeyPair.crysl
@@ -22,8 +22,9 @@ ORDER
REQUIRES
generatedPrivkey[privateKey];
generatedPubkey[publicKey];
+ noCallTo[Con] => generatedKeypair[this, _];
ENSURES
generatedKeypair[this, _] after Con;
generatedPubkey[retPublicKey] after GetPubl;
- generatedPrivkey[retPrivateKey] after GetPriv;
\ No newline at end of file
+ generatedPrivkey[retPrivateKey] after GetPriv;
diff --git a/BouncyCastle-JCA/src/PrivateKey.crysl b/BouncyCastle-JCA/src/PrivateKey.crysl
index ec3008c..265d05b 100644
--- a/BouncyCastle-JCA/src/PrivateKey.crysl
+++ b/BouncyCastle-JCA/src/PrivateKey.crysl
@@ -9,6 +9,9 @@ EVENTS
ORDER
GetEnc*
+
+REQUIRES
+ generatedPrivkey[this];
ENSURES
preparedKeyMaterial[keyMaterial] after GetEnc;
diff --git a/BouncyCastle-JCA/src/PublicKey.crysl b/BouncyCastle-JCA/src/PublicKey.crysl
index e273315..941f828 100644
--- a/BouncyCastle-JCA/src/PublicKey.crysl
+++ b/BouncyCastle-JCA/src/PublicKey.crysl
@@ -9,6 +9,9 @@ EVENTS
ORDER
GetEnc*
+
+REQUIRES
+ generatedPubkey[this];
ENSURES
preparedKeyMaterial[keyMaterial] after GetEnc;
diff --git a/BouncyCastle-JCA/src/SecretKey.crysl b/BouncyCastle-JCA/src/SecretKey.crysl
index 5433c58..8cc0cdf 100644
--- a/BouncyCastle-JCA/src/SecretKey.crysl
+++ b/BouncyCastle-JCA/src/SecretKey.crysl
@@ -12,11 +12,12 @@ EVENTS
ORDER
GetEnc*, Destroy?
+
+REQUIRES
+ generatedKey[this, _];
ENSURES
preparedKeyMaterial[keyMaterial] after GetEnc;
NEGATES
generatedKey[this, _] after Destroy;
-
-
\ No newline at end of file
diff --git a/JavaCryptographicArchitecture/pom.xml b/JavaCryptographicArchitecture/pom.xml
index 2aac4b3..57a63f0 100644
--- a/JavaCryptographicArchitecture/pom.xml
+++ b/JavaCryptographicArchitecture/pom.xml
@@ -6,7 +6,6 @@
JavaCryptographicArchitecture
3.0.2
CrySL Rules Bundle
-
Eclipse Public License - v2.0
diff --git a/JavaCryptographicArchitecture/src/Key.crysl b/JavaCryptographicArchitecture/src/Key.crysl
index 44f9841..510ddf9 100644
--- a/JavaCryptographicArchitecture/src/Key.crysl
+++ b/JavaCryptographicArchitecture/src/Key.crysl
@@ -9,6 +9,9 @@ EVENTS
ORDER
GetEnc*
+
+REQUIRES
+ generatedKey[this, _] || generatedPubkey[this] || generatedPrivkey[this];
ENSURES
preparedKeyMaterial[keyMaterial] after GetEnc;
diff --git a/JavaCryptographicArchitecture/src/KeyPair.crysl b/JavaCryptographicArchitecture/src/KeyPair.crysl
index 2a69a65..b98f2ab 100644
--- a/JavaCryptographicArchitecture/src/KeyPair.crysl
+++ b/JavaCryptographicArchitecture/src/KeyPair.crysl
@@ -22,6 +22,7 @@ ORDER
REQUIRES
generatedPrivkey[privateKey];
generatedPubkey[publicKey];
+ noCallTo[Con] => generatedKeypair[this, _];
ENSURES
generatedKeypair[this, _] after Con;
diff --git a/JavaCryptographicArchitecture/src/PrivateKey.crysl b/JavaCryptographicArchitecture/src/PrivateKey.crysl
index ec3008c..265d05b 100644
--- a/JavaCryptographicArchitecture/src/PrivateKey.crysl
+++ b/JavaCryptographicArchitecture/src/PrivateKey.crysl
@@ -9,6 +9,9 @@ EVENTS
ORDER
GetEnc*
+
+REQUIRES
+ generatedPrivkey[this];
ENSURES
preparedKeyMaterial[keyMaterial] after GetEnc;
diff --git a/JavaCryptographicArchitecture/src/PublicKey.crysl b/JavaCryptographicArchitecture/src/PublicKey.crysl
index e273315..941f828 100644
--- a/JavaCryptographicArchitecture/src/PublicKey.crysl
+++ b/JavaCryptographicArchitecture/src/PublicKey.crysl
@@ -9,6 +9,9 @@ EVENTS
ORDER
GetEnc*
+
+REQUIRES
+ generatedPubkey[this];
ENSURES
preparedKeyMaterial[keyMaterial] after GetEnc;
diff --git a/JavaCryptographicArchitecture/src/SecretKey.crysl b/JavaCryptographicArchitecture/src/SecretKey.crysl
index 955e3c5..8cc0cdf 100644
--- a/JavaCryptographicArchitecture/src/SecretKey.crysl
+++ b/JavaCryptographicArchitecture/src/SecretKey.crysl
@@ -12,6 +12,9 @@ EVENTS
ORDER
GetEnc*, Destroy?
+
+REQUIRES
+ generatedKey[this, _];
ENSURES
preparedKeyMaterial[keyMaterial] after GetEnc;