summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/uic/barcode/dynamicFrame/Level2DataType.java
diff options
context:
space:
mode:
authorCGantert345 <57003061+CGantert345@users.noreply.github.com>2021-06-29 16:26:36 +0200
committerGitHub <noreply@github.com>2021-06-29 16:26:36 +0200
commit27d114203f6edaf8aea75ee710bd87f32d79f003 (patch)
tree794e40b39e154adef8e471ab8774c8a68bd3e434 /src/main/java/org/uic/barcode/dynamicFrame/Level2DataType.java
parentDelete uicBarcodeFCBv2.0.asn (diff)
parent- test for FCB version 3 (diff)
downloadUIC-barcode-27d114203f6edaf8aea75ee710bd87f32d79f003.tar
UIC-barcode-27d114203f6edaf8aea75ee710bd87f32d79f003.tar.gz
UIC-barcode-27d114203f6edaf8aea75ee710bd87f32d79f003.tar.bz2
UIC-barcode-27d114203f6edaf8aea75ee710bd87f32d79f003.tar.lz
UIC-barcode-27d114203f6edaf8aea75ee710bd87f32d79f003.tar.xz
UIC-barcode-27d114203f6edaf8aea75ee710bd87f32d79f003.tar.zst
UIC-barcode-27d114203f6edaf8aea75ee710bd87f32d79f003.zip
Diffstat (limited to 'src/main/java/org/uic/barcode/dynamicFrame/Level2DataType.java')
-rw-r--r--src/main/java/org/uic/barcode/dynamicFrame/Level2DataType.java21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/main/java/org/uic/barcode/dynamicFrame/Level2DataType.java b/src/main/java/org/uic/barcode/dynamicFrame/Level2DataType.java
index dbd25ce..8c3cd60 100644
--- a/src/main/java/org/uic/barcode/dynamicFrame/Level2DataType.java
+++ b/src/main/java/org/uic/barcode/dynamicFrame/Level2DataType.java
@@ -1,6 +1,7 @@
package org.uic.barcode.dynamicFrame;
import java.security.PrivateKey;
+import java.security.Provider;
import java.security.Signature;
import org.uic.barcode.asn1.datatypes.Asn1Optional;
@@ -95,6 +96,26 @@ public class Level2DataType {
this.level1Signature = new OctetString(sig.sign());
}
+ /**
+ * Sign the contained data block.
+ *
+ * Note: an appropriate security provider (e.g. BC) must be registered before
+ *
+ * @param key the key
+ * @param security provider - security provider that must be sued to create the signature
+ * @return
+ * @return the byte[]
+ * @throws Exception
+ */
+ public void signLevel1(PrivateKey key, Provider prov) throws Exception {
+ //find the algorithm name for the signature OID
+ String algo = AlgorithmNameResolver.getSignatureAlgorithmName(getLevel1Data().level1SigningAlg);
+ Signature sig = Signature.getInstance(algo, prov);
+ sig.initSign(key);
+ byte[] data = level1Data.encode();
+ sig.update(data);
+ this.level1Signature = new OctetString(sig.sign());
+ }
}