EUCEG: Encryption process

Size: px
Start display at page:

Download "EUCEG: Encryption process"

Transcription

1 EUROPEAN COMMISSION DIRECTORATE-GENERAL FOR HEALTH AND FOOD SAFETY General Affairs Information systems EUCEG: Encryption process

2 Document Control Information Settings Document Title: Project Title: Document Author: Value EUCEG: Encryption process EUCEG EC Doc. Version: 1.0 Sensitivity: public Date: 13/05/2016 Document history: The Document Author is authorized to make the following types of changes to the document without requiring that the document be re-approved: Editorial, formatting, and spelling Clarification To request a change to this document, contact the Document Author or Owner. Changes to this document are summarized in the following table in reverse chronological order (latest version first). Revision Date Created by Short Description of Changes /05/2016 EC Creation of the document /06/2016 EC Update /09/2016 EC Code sample update

3 Table of Contents 1. AS4 MESSAGE AS4 Message structure ENCRYPTION At AS4 communication level Principle At Payload container level Principle of sending encrypted message to EU-CEG How to encrypt messages to send to EUCEG How to decrypt the messages received from EUCEG TECHNICAL CONTACT ANNEX Payload example Java code... 9

4 Payload container EUCEG XML message AS4 message 1. AS4 MESSAGE Information about AS4 message can be found here: AS4 Message structure 2. ENCRYPTION 2.1. At AS4 communication level Principle This encryption should be done automatically in your AS4 access point for the AS4 message. Note: The encryption at AS4 level is only done automatically if it is configured correctly in your AS4 access point according to the PMode details document (EU- CEG PMode Configuration v1.02.docx) that you can find here: a. For tobacco product : b. For e-cigarettes : b009a Please be aware that if your AS4 access point is not configured to encrypt AS4 messages this message will fail to arrive.

5 2.2. At Payload container level Principle of sending encrypted message to EU-CEG As the AS4 communication level encryption does not cover all the message transport to EU-CEG, another encryption is therefore needed for the payload container which contains the EUCEG XML message (XML submitter, XML product, or XML attachment) in order to meet the end to end encryption requirement. The principle of the used encryption for the payload is to encrypt it with a symmetric encryption and to use asymmetric encryption (PKI) to encrypt the symmetric key used. The used asymmetric key is the public key of EU-CEG. The encrypted payload and encrypted symmetric key are sent to EU-CEG. The EU- CEG decrypts the encrypted symmetric key with its private key then it decrypts the payload with the decrypted symmetric key. The figure below presents the steps of encryption. 1 - Hash the file with the hashing algorithm SHA_ Generate an AES 256 key 3 - Symmetric encryption of file with the AES 256 key 4 - Asymmetric encryption of the AES 256 key with the EC public key 5 - Send the hash value, the encrypted file and the encrypted key

6 How to encrypt messages to send to EUCEG As described in 2.2.1, these are the steps to follow in order to send an encrypted message: 1) Perform a checksum of the xml document (submitter_detail.xml, attachement.xml, submission.xml) with the method. 2) Generate an AES 256 key. Encryptions algorithm AES 256: 3) Encrypt the xml document (submitter_detail.xml, attachement.xml, submission.xml) with the generated key 4) Encrypt the generated key with the EUCEG public key using the algorithm RSA/ ECB/PKCS1Padding The EC certificate containing the public key can be found in CIRCABC (EUCEG_AP_EUROPEAN_COMMISSION.cer): a. For tobacco product : b. For e-cigarettes : 70e768dff38a 5) Create the payload according to the XSD schema (AS4EncryptedPayload.xsd). The payload must include the following information: a. the encrypted XML document encoded in base 64,. b. the checksum value of the XML document to ensure the integrity of the content. c. the encrypted key encoded in base 64. In the annex you will find an example of the payload that should be included in the AS4 message. The XSD schema (AS4EncryptedPayload.xsd) can be found in CIRCABC: c. For tobacco product : be96e313 d. For e-cigarettes : bf74-c a3a3 Once the message is ready, you can submit it through your AS4 access point. Note: You can find a simple Java code example to encrypt one file in the annexe

7 How to decrypt the messages received from EUCEG The message response received from EC AS4 Access point will respect the same XSD schema as the one used to send messages. These are the steps to follow in order to decrypt the message: 1) Extract from the payload received: a. The Content of the XML document <Content> </content> b. The Hash of the XML document <DocumentHash> </DocumentHash> c. The Key (Symmetric key) <Key> </Key> 2) Decode from base 64 the content and the key. 3) Decrypt the key using the private key provided by EC PKI service. 4) Decrypt the content using the decrypted key (step 3) Note: The checksum of the decrypted file has to be equal to the Document Hash value. 3. TECHNICAL CONTACT If you have any questions regarding the encryption please send an to EUCEG- For a better support please specify in your your Submitter identifier.

8 4. ANNEX 4.1. Payload example <?xml version="1.0" encoding="utf-8"?> <AS4Payload xmlns:xsi=" xsi:nonamespaceschemalocation="as4payload.xsd"> <Content>4MNhDT0Vh6ylZKeaHyPs4GBMghQx1zZPz5IbzCPXW3nggw/eGGvcx3D khjfpjt7bpsnb+uxztxdgdtdn/qeddo7zuysrfy59dqxqwdlzbflm8kpc1bpuhaf RcEBPlHyJW9oR8/Kd5SZ4zHvqPvHtdQcLUp+zYi7bf/cfXteSulMQm0BKQ1oxzXCp NnX5OBG6R/cHOfIFZyg5KPRTQo3xihRevzNnwK4USAHcvUQTMNFL8+E6jNHgy e5zsevdcb+f4hsiywzzncckxurfyujkvvtjfhej6lng5/p0yslla4cvnew6ybpyxugprs NqiTnJdsfV1NDkhnuEbUYatIiLTbMtKV92/+b//U7PCSNDBDND8BJNwio9b8SYvZE NuF3nplI5cggnrq3Y4PY66LhPCox/0WZj2B6BOKQYI7VRRG9b8VPTwTc47EnxKZI pqgduaorh8vfbsdxvpm82secf9waaaaaaaaaaaaaaaaaa</content> <DocumentHash>ff2d8a916ab1cfce03957a3d160a6a6862ad7d6bd28445b62eff5165e78 813fa5638a672f8f42f25a6c1b71909c69d44f5fe28669f539c3947ac38684ca8e5a1</Docu menthash> <Key>d9aAVK1ByWos3oZxXC2pZYvTC9q9WqNYWvFK1YXSCyQ3b6aflTeB5qR2 kn7mlm68roohwaoosixius+fbo2jotukej6327be8b7cy0hl/w2ozsa3h9fruq2b 3lbCvwzsM7aixBCZlKFeA7QtJkvzscLKqyZPu8FGEruXRKnT/9Tss6w76BmyLAupPp 6ngc6lwPy8RAAxQSSPjwepYhCuIJw87JRoe3UzPbVyhRb4kM77W0cT3SPpKIf2eLO be6bdoueoqpr/yf5lygzqgxrelttyhfkkkuq1g7ovruawzqxflp1v3f+csotpiw MPFLePLuyqzX9RBcCTPyzztbV/qw==</Key> </AS4Payload>

9 4.2. Java code package eu.europa.ec.sante.tobir.gateway.security; import java.io.file; import java.io.fileinputstream; import java.io.filenotfoundexception; import java.io.fileoutputstream; import java.io.ioexception; import java.io.inputstream; import java.io.outputstream; import java.security.keystore; import java.security.keystoreexception; import java.security.nosuchalgorithmexception; import java.security.privatekey; import java.security.publickey; import java.security.unrecoverablekeyexception; import java.security.cert.certificateexception; import javax.crypto.cipher; import javax.crypto.keygenerator; import javax.crypto.secretkey; import org.apache.commons.io.fileutils; import org.apache.commons.io.ioutils; import org.bouncycastle.crypto.blockcipher; import org.bouncycastle.crypto.bufferedblockcipher; import org.bouncycastle.crypto.cipherparameters; import org.bouncycastle.crypto.engines.aesengine; import org.bouncycastle.crypto.io.cipherinputstream; import org.bouncycastle.crypto.io.cipheroutputstream; import org.bouncycastle.crypto.modes.cbcblockcipher; import org.bouncycastle.crypto.paddings.blockcipherpadding; import org.bouncycastle.crypto.paddings.pkcs7padding; import org.bouncycastle.crypto.paddings.paddedbufferedblockcipher; import org.bouncycastle.crypto.params.keyparameter; public class EncryptionExample { private PublicKey publickey; private PrivateKey privatekey; private byte[] AESKey; private byte[] encryptedaeskey; private byte[] decryptedaeskey; public static void main(string[] args) throws Exception { EncryptionExample encryptioexample = new EncryptionExample(); // get the public key from the truststore (the trustore is put at the classpath root) encryptioexample.extractkeyfromtruststore("/truststore.jks", "certificatealiasname", "truststorepassword"); // generate a symmetric key for the encryption of the xml content encryptioexample.genaes256key(); // encrypt the xml file in a txt file ( xml file is put at the classpath root) encryptioexample.encryptfilewithaeskey("filetoencode.xml", "encodedfile.txt"); // encrypt the symmetric key with the public key (asymmetric key extract from the truststore) encryptioexample.encryptaeskey(); "keypassword"); // get the private key from the keystore (the keystore is put at the classpath root) encryptioexample.extractkeyfromkeystore("/keystore.jks", "keyalias", "keystorepassword", // decrypt the symetric key with the private key encryptioexample.decryptaeskey(); // decrypt the file with the decrypted symmetric key and put in a new file encryptioexample.decryptfile( "encodedfile.txt", "decryptedfile.xml");

10 public void extractkeyfromtruststore(string keystorepath, String alias, String password) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, UnrecoverableKeyException { InputStream fis = this.getclass().getresourceasstream(keystorepath); KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); ks.load(fis, password.tochararray()); publickey = ks.getcertificate(alias).getpublickey(); public void extractkeyfromkeystore(string keystorepath, String alias, String password, String passwordkey) throws KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, UnrecoverableKeyException { InputStream fis = this.getclass().getresourceasstream(keystorepath); KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); ks.load(fis, password.tochararray()); privatekey = (PrivateKey) ks.getkey(alias, passwordkey.tochararray()); public void genaes256key() throws NoSuchAlgorithmException { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(256); // Generate the secret key specs. SecretKey skey = kgen.generatekey(); AESKey = skey.getencoded(); /** * asymmetric encryption * */ public void encryptaeskey() throws Exception { Cipher cipher = Cipher.getInstance(publicKey.getAlgorithm() + "/ECB/PKCS1Padding"); cipher.init(cipher.encrypt_mode, publickey); encryptedaeskey = cipher.dofinal(aeskey); /** * asymmetric decryption * */ public void decryptaeskey() throws Exception { Cipher cipher = Cipher.getInstance(privateKey.getAlgorithm() + "/ECB/PKCS1Padding"); cipher.init(cipher.decrypt_mode, privatekey); decryptedaeskey = cipher.dofinal(encryptedaeskey); public void encryptfilewithaeskey(string relativefilepath, String destpath) { byte[] filetoencrypt = convertfiletoencryptedbytearray(relativefilepath); copybytearray(filetoencrypt, destpath); public void decryptfile(string encryptedfilepath, String decryptedfilepath) throws FileNotFoundException { InputStream is = getclass().getclassloader().getresourceasstream(encryptedfilepath); File file = new File(decryptedFilePath); OutputStream os = null; int i; try { os = FileUtils.openOutputStream(file); //wrap the output stream into an output stream with decryption capabilities //the data will be decrypted as they are written os = getcipheroutputstream(os, decryptedaeskey, false); while ((i = is.read())!= -1) { os.write(i); catch (Exception e) { e.printstacktrace(); finally { IOUtils.closeQuietly(os); IOUtils.closeQuietly(is);

11 private byte[] convertfiletoencryptedbytearray(string relativefilepath) { InputStream inputstream=null; File xmlfile = new File(getClass().getClassLoader().getResource(relativeFilePath).getFile()); try { //convert file into encrypted array of bytes //the data will be encrypted as they are read inputstream = getcipherinputstream(new FileInputStream(xmlFile), AESKey, true) ; byte[] bfile = IOUtils.toByteArray(inputStream); inputstream.close(); return bfile; catch(exception e) { e.printstacktrace(); return null; public InputStream getcipherinputstream(inputstream inputstream, byte[] aes256key, boolean forencryption) { BufferedBlockCipher bufferedblockcipher = buildaesbufferedblockcipher(aes256key, forencryption); return new CipherInputStream(inputStream, bufferedblockcipher); public OutputStream getcipheroutputstream(outputstream outputstream, byte[] aes256key, boolean forencryption) { BufferedBlockCipher bufferedblockcipher = buildaesbufferedblockcipher(aes256key, forencryption); return new CipherOutputStream(outputStream, bufferedblockcipher); public void copybytearray( byte[] bfile, String path ) { try { //convert array of bytes into file FileOutputStream fileouputstream = new FileOutputStream(path); fileouputstream.write(bfile); fileouputstream.close(); catch(exception e){ e.printstacktrace(); private BufferedBlockCipher buildaesbufferedblockcipher(byte[] key, boolean forencryption) { /* * A full list of BlockCiphers can be found at */ BlockCipher blockcipher = new AESEngine(); CBCBlockCipher cbcblockcipher = new CBCBlockCipher(blockCipher); /* * Paddings available ( * - ISO10126d2Padding * - ISO7816d4Padding * - PKCS7Padding * - TBCPadding * - X923Padding * - ZeroBytePadding */ BlockCipherPadding blockcipherpadding = new PKCS7Padding(); BufferedBlockCipher bufferedblockcipher = new PaddedBufferedBlockCipher(cbcBlockCipher, blockcipherpadding);

12 CipherParameters cipherparameters = new KeyParameter(key); bufferedblockcipher.init(forencryption, cipherparameters); return bufferedblockcipher;

EUCEG XML submission System (ETRUSTEX) TUTORIAL

EUCEG XML submission System (ETRUSTEX) TUTORIAL EUROPEAN COMMISSION DIRECTORATE-GENERAL FOR HEALTH AND FOOD SAFETY Resource management and better regulation Information systems EUCEG XML submission System (ETRUSTEX) TUTORIAL Page 1 Document Control

More information

Procedure to install the TPD XML creator tool

Procedure to install the TPD XML creator tool EUROPEAN COMMISSION DIRECTORATE-GENERAL FOR HEALTH AND FOOD SAFETY Resource management and better regulation Information systems Procedure to install the TPD XML creator tool Commission européenne/europese

More information

Procedure for Member State registration in the authorisation system SAAS

Procedure for Member State registration in the authorisation system SAAS EUROPEAN COMMISSION DIRECTORATE-GENERAL FOR HEALTH AND FOOD SAFETY Resource management and better regulation Information systems Procedure for Member State registration in the authorisation system SAAS

More information

AES Code Example

AES Code Example 210 Figure 12-1. Block cipher chaining modes 12.1.6. AES Code Example Now that we have covered block ciphers and CBC, we provide a simple Java code example that can encrypt and decrypt using AES in CBC

More information

... 1... 2... 2... 3... 3... 4... 4... 5... 5... 6... 6... 7... 8... 9... 10... 13... 14... 17 1 2 3 4 file.txt.exe file.txt file.jpg.exe file.mp3.exe 5 6 0x00 0xFF try { in.skip(9058); catch (IOException

More information

The ehealth platform

The ehealth platform Cookbook End-to-end Encryption Known recipient Version 2.3 This document is provided to you free of charge by The ehealth platform Willebroekkaai 38 Quai de Willebroeck 1000 BRUSSELS All are free to circulate

More information

DidiSoft OpenPGP Library for Java version 2.5

DidiSoft OpenPGP Library for Java version 2.5 DidiSoft OpenPGP Library for Java version 2.5 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 2 //38 3 4 5 6 7 8 9 1 38 Table of contents Introduction... 3 Setup...

More information

USER GUIDE. Trivalent Protect 2.6 for Android

USER GUIDE. Trivalent Protect 2.6 for Android USER GUIDE NOVEMBER 2017 Table of Contents Table of Contents 1. General Information... 1 1.1. Introduction... 1 1.2. Description... 1 1.3. Benefits & Value... 1 1.4. Platform Requirements... 1 1.5. Application

More information

Verteilte Systeme UE Important Code

Verteilte Systeme UE Important Code Verteilte Systeme UE Important Code Lab 1 Create ServerSocket ServerSocket serversocket = new ServerSocket(tcpPort); //throws IOException Accept ClientSocket Socket clientsocket = serversocket.accept();

More information

DidiSoft OpenPGP Library for Java version 2.5

DidiSoft OpenPGP Library for Java version 2.5 DidiSoft OpenPGP Library for Java version 2.5 About About the Library DidiSoft OpenPGP Library for Java is a 100% Java library with no external dependencies. Features The library provides functions for

More information

OPERATIONS & MAINTENANCE MANUAL. Trivalent Management Service

OPERATIONS & MAINTENANCE MANUAL. Trivalent Management Service OPERATIONS & MAINTENANCE MANUAL DECEMBER 2016 Table of Contents Table of Contents 1. Introduction... 1 1.1. Acronyms... 1 1.2. Scope of evaluation... 2 2. Installation... 3 2.1. Uninstalling... 4 3. Overview

More information

Joyetech. TPD Notification Guidance. Joyetech Marketing Team 2016/9/29

Joyetech. TPD Notification Guidance. Joyetech Marketing Team 2016/9/29 TPD Notification Guidance Marketing Team 2016/9/29 I. Apply for a submitter ID II. Download the XML Creator from the EU Website III. Created a submission with the XML creator IV. Created a ECAS account

More information

Each command-line argument is placed in the args array that is passed to the static main method as below :

Each command-line argument is placed in the args array that is passed to the static main method as below : 1. Command-Line Arguments Any Java technology application can use command-line arguments. These string arguments are placed on the command line to launch the Java interpreter after the class name: public

More information

FIRE (3473) Dallas Los Angeles Sydney New York London

FIRE (3473) Dallas Los Angeles Sydney New York London Traditional project life cycles lasting 12+ months are increasingly putting organizations at a disadvantage to more nimble startups that can innovate and change direction at a faster pace. New Agile development

More information

JAVA - DRI Connection Test Manual

JAVA - DRI Connection Test Manual JAVA - DRI Connection Test Manual This is a step by step guide on how to access the DRI Web service with native Java. 1. Install the NetBeans IDE Since the DRI Web service is developed in.net WCF, interoperability

More information

Refund Selection Single Sign On

Refund Selection Single Sign On BankMobile Refund Selection Single Sign On OVERVIEW The BankMobile Refund Selection Single Sign-On (SSO) solution will offer an integrated user authentication system for students to make their initial

More information

Subject Key Attestations in KeyGen2

Subject Key Attestations in KeyGen2 Subject Key Attestations in KeyGen2 For on-line (remote) provisioning of keys to Security Elements (SEs), like Smart Cards, there is a whish by issuers to be able to securely verify that the public key

More information

STREAMS. (fluxos) Objetivos

STREAMS. (fluxos) Objetivos STREAMS (fluxos) Objetivos To be able to read and write files To become familiar with the concepts of text and binary files To be able to read and write objects using serialization To be able to process

More information

Performing input and output operations using a Byte Stream

Performing input and output operations using a Byte Stream Performing input and output operations using a Byte Stream public interface DataInput The DataInput interface provides for reading bytes from a binary stream and reconstructing from them data in any of

More information

File Operations in Java. File handling in java enables to read data from and write data to files

File Operations in Java. File handling in java enables to read data from and write data to files Description Java Basics File Operations in Java File handling in java enables to read data from and write data to files along with other file manipulation tasks. File operations are present in java.io

More information

BEng (Hons) Telecommunications. Examinations for / Semester 1

BEng (Hons) Telecommunications. Examinations for / Semester 1 BEng (Hons) Telecommunications Cohort: BTEL/14B/FT Examinations for 2017 2018 / Semester 1 MODULE: Security in Telecommunications MODULE CODE: SECU4114 Duration: 3 Hours Instructions to Candidates: 1.

More information

IT101. File Input and Output

IT101. File Input and Output IT101 File Input and Output IO Streams A stream is a communication channel that a program has with the outside world. It is used to transfer data items in succession. An Input/Output (I/O) Stream represents

More information

Programming with the SCA BB Service Configuration API

Programming with the SCA BB Service Configuration API CHAPTER 3 Programming with the SCA BB Service Configuration API Revised: September 17, 2012, Introduction This chapter is a reference for the main classes and methods of the Cisco SCA BB Service Configuration

More information

Programming with the SCA BB Service Configuration API

Programming with the SCA BB Service Configuration API CHAPTER 3 Programming with the SCA BB Service Configuration API Revised: November 8, 2010, Introduction This chapter is a reference for the main classes and methods of the Cisco SCA BB Service Configuration

More information

Core Security Services and Bootstrapping in the Cherubim Security System

Core Security Services and Bootstrapping in the Cherubim Security System Core Security Services and Bootstrapping in the Cherubim Security System Charles Willis cfwillis@uiuc.edu Technical Report 2 July 1998 University of Illinois at Urbana-Champaign Department of Computer

More information

CS11 Java. Fall Lecture 4

CS11 Java. Fall Lecture 4 CS11 Java Fall 2014-2015 Lecture 4 Java File Objects! Java represents files with java.io.file class " Can represent either absolute or relative paths! Absolute paths start at the root directory of the

More information

Cipher Suite Configuration Mode Commands

Cipher Suite Configuration Mode Commands The Cipher Suite Configuration Mode is used to configure the building blocks for SSL cipher suites, including the encryption algorithm, hash function, and key exchange. Important The commands or keywords/variables

More information

Programming with the SCA BB Service Configuration API

Programming with the SCA BB Service Configuration API CHAPTER 3 Programming with the SCA BB Service Configuration API Published: December 23, 2013, Introduction This chapter is a reference for the main classes and methods of the Cisco SCA BB Service Configuration

More information

Secure Programming Lab 3: Solutions

Secure Programming Lab 3: Solutions Secure Programming Lab 3: Solutions Rui Li, Arthur Chan and David Aspinall 14th March 2017 1. Metadata and privacy Checkpoint 1. Where did the metadata come from? Is any of the data concerning from a privacy

More information

Key Management Interoperability Protocol Crypto Profile Version 1.0

Key Management Interoperability Protocol Crypto Profile Version 1.0 Key Management Interoperability Protocol Crypto Profile Version 1.0 Working Draft 0708 25 7 NovemberOctober 2012 Technical Committee: OASIS Key Management Interoperability Protocol (KMIP) TC Chairs: Robert

More information

Chapter 10. IO Streams

Chapter 10. IO Streams Chapter 10 IO Streams Java I/O The Basics Java I/O is based around the concept of a stream Ordered sequence of information (bytes) coming from a source, or going to a sink Simplest stream reads/writes

More information

FILE I/O IN JAVA. Prof. Chris Jermaine

FILE I/O IN JAVA. Prof. Chris Jermaine FILE I/O IN JAVA Prof. Chris Jermaine cmj4@cs.rice.edu 1 Our Simple Java Programs So Far Aside from screen I/O......when they are done, they are gone They have no lasting effect on the world When the program

More information

PSK Cipher Suites. isasilk Version 5. Stiftung SIC

PSK Cipher Suites. isasilk Version 5. Stiftung SIC PSK Cipher Suites isasilk Version 5 Stiftung SIC http://jce.iaik.tugraz.at Copyright 2006 2015 Stiftung Secure Information and Communication Technologies SIC Java and all Java-based marks are trademarks

More information

Basic Java IO Decorator pattern Advanced Java IO. Java IO - part 2 BIU OOP. BIU OOP Java IO - part 2

Basic Java IO Decorator pattern Advanced Java IO. Java IO - part 2 BIU OOP. BIU OOP Java IO - part 2 Java IO - part 2 BIU OOP Table of contents 1 Basic Java IO What do we know so far? What s next? 2 Example Overview General structure 3 Stream Decorators Serialization What do we know so far? What s next?

More information

Lampiran A. SOURCE CODE PROGRAM

Lampiran A. SOURCE CODE PROGRAM A-1 Lampiran A. SOURCE CODE PROGRAM Frame Utama package FrameDesign; import ArithmeticSkripsi.ArithmeticCompress; import ArithmeticSkripsi.ArithmeticDecompress; import Deflate.DeflateContoh; import java.io.file;

More information

Overview of Web Services API

Overview of Web Services API CHAPTER 1 The Cisco IP Interoperability and Collaboration System (IPICS) 4.0(x) application programming interface (API) provides a web services-based API that enables the management and control of various

More information

Week 12. Streams and File I/O. Overview of Streams and File I/O Text File I/O

Week 12. Streams and File I/O. Overview of Streams and File I/O Text File I/O Week 12 Streams and File I/O Overview of Streams and File I/O Text File I/O 1 I/O Overview I/O = Input/Output In this context it is input to and output from programs Input can be from keyboard or a file

More information

I/O STREAM (REQUIRED IN THE FINAL)

I/O STREAM (REQUIRED IN THE FINAL) I/O STREAM (REQUIRED IN THE FINAL) STREAM A stream is a communication channel that a program has with the outside world. It is used to transfer data items in succession. An Input/Output (I/O) Stream represents

More information

Information System Security

Information System Security Prof. Dr. Christoph Karg Aalen University Of Applied Sciences Department Of Computer Science Information System Security Exercise: Cryptography with Java October 16, 2017 The goal of this laboratory exercise

More information

DidiSoft OpenPGP Library for Java version 3.1

DidiSoft OpenPGP Library for Java version 3.1 DidiSoft OpenPGP Library for Java version 3.1 1 / 10 Table of contents Introduction... 3 Setup... 4 JAR files... 4 Switching from Trial/Evaluation/ version to Production... 4 Javadoc in Eclipse... 4 Migration

More information

ENEE 459-C Computer Security. Symmetric key encryption in practice: DES and AES algorithms

ENEE 459-C Computer Security. Symmetric key encryption in practice: DES and AES algorithms ENEE 459-C Computer Security Symmetric key encryption in practice: DES and AES algorithms A perfect encryption of a block Say you have a block of n bits You want to encrypt it You want to use the same

More information

Table of contents 2 / 12

Table of contents 2 / 12 OraRSA 1 / 12 Table of contents Introduction... 3 Install... 4 Setup... 4 Load the JAR files... 4 Register ORA_RSA package... 4 Permissions... 4 Upgrade... 4 Uninstall... 5 Switch from Trial to Production

More information

2018/2/5 话费券企业客户接入文档 语雀

2018/2/5 话费券企业客户接入文档 语雀 1 2 2 1 2 1 1 138999999999 2 1 2 https:lark.alipay.com/kaidi.hwf/hsz6gg/ppesyh#2.4-%e4%bc%81%e4%b8%9a%e5%ae%a2%e6%88%b7%e6%8e%a5%e6%94%b6%e5%85%85%e5 1/8 2 1 3 static IAcsClient client = null; public static

More information

CS Programming I: File Input / Output

CS Programming I: File Input / Output CS 200 - Programming I: File Input / Output Marc Renault Department of Computer Sciences University of Wisconsin Madison Spring 2018 TopHat Sec 3 (AM) Join Code: 427811 TopHat Sec 4 (PM) Join Code: 165455

More information

The client also provides utilities to disassemble signatures (e.g. extracting the signer certificates, digest algorithms used etc.

The client also provides utilities to disassemble signatures (e.g. extracting the signer certificates, digest algorithms used etc. Krestfield EzSign Client Integration Guide Version 2.1 Copyright Krestfield 2017 Introduction The Krestfield EzSign Client is a lightweight java package which interfaces with the EzSign Server enabling

More information

Chapter 2 Applications and

Chapter 2 Applications and Chapter 2 Applications and Layered Architectures Sockets Socket API API (Application Programming Interface) Provides a standard set of functions that can be called by applications Berkeley UNIX Sockets

More information

Introducing Hardware Security Modules to Embedded Systems

Introducing Hardware Security Modules to Embedded Systems Introducing Hardware Security Modules to Embedded Systems for Electric Vehicles charging according to ISO/IEC 15118 V1.0 2017-03-17 Agenda Hardware Trust Anchors - General Introduction Hardware Trust Anchors

More information

CS Programming I: File Input / Output

CS Programming I: File Input / Output CS 200 - Programming I: File Input / Output Marc Renault Department of Computer Sciences University of Wisconsin Madison Fall 2017 TopHat Sec 3 (PM) Join Code: 719946 TopHat Sec 4 (AM) Join Code: 891624

More information

Digital it Signatures. Message Authentication Codes. Message Hash. Security. COMP755 Advanced OS 1

Digital it Signatures. Message Authentication Codes. Message Hash. Security. COMP755 Advanced OS 1 Digital Signatures Digital it Signatures Offer similar protections as handwritten signatures in the real world. 1. Difficult to forge. 2. Easily verifiable. 3. Not deniable. 4. Easy to implement. 5. Differs

More information

Security+ Guide to Network Security Fundamentals, Third Edition. Chapter 11 Basic Cryptography

Security+ Guide to Network Security Fundamentals, Third Edition. Chapter 11 Basic Cryptography Security+ Guide to Network Security Fundamentals, Third Edition Chapter 11 Basic Cryptography Objectives Define cryptography Describe hashing List the basic symmetric cryptographic algorithms 2 Objectives

More information

How to use an EPR certificate with the MESH client

How to use an EPR certificate with the MESH client Document filename: How to use an EPR certificate with the MESH client Directorate / Programme Operations and Assurance Services Project Spine Services/ MESH Document Reference Project Manager

More information

Lecture 7. File Processing

Lecture 7. File Processing Lecture 7 File Processing 1 Data (i.e., numbers and strings) stored in variables, arrays, and objects are temporary. They are lost when the program terminates. To permanently store the data created in

More information

Android Layout SDK. Programming Manual for Version 1.3.0

Android Layout SDK. Programming Manual for Version 1.3.0 Programming Manual for Version 1.3.0 Revision History Date Version Description 2014.09.08 1.2.0.0 - First issue. (Layout Utilities Users Guide) 2016.08.16 1.3.0.0 - Supported "Straight Line" and "Rectangle"

More information

CSPP : Introduction to Object-Oriented Programming

CSPP : Introduction to Object-Oriented Programming CSPP 511-01: Introduction to Object-Oriented Programming Harri Hakula Ryerson 256, tel. 773-702-8584 hhakula@cs.uchicago.edu August 7, 2000 CSPP 511-01: Lecture 15, August 7, 2000 1 Exceptions Files: Text

More information

Subject Key Attestations in KeyGen2

Subject Key Attestations in KeyGen2 Subject Key Attestations in KeyGen2 For on-line (remote) provisioning of keys to Security Elements (SEs), like Smart Cards, there is a wish by issuers to be able to securely verify that the public key

More information

Practical -1. Aim: Implementing Substitution Ciphers. a) Caesar Cipher. File name: Filehandling.java. Coding:

Practical -1. Aim: Implementing Substitution Ciphers. a) Caesar Cipher. File name: Filehandling.java. Coding: Practical -1 Aim: Implementing Substitution Ciphers. a) Caesar Cipher File name: Filehandling.java Coding: import java.io.*; class FileHandling public static void main(string[] args) String s=""; int i;

More information

Input-Output and Exception Handling

Input-Output and Exception Handling Software and Programming I Input-Output and Exception Handling Roman Kontchakov / Carsten Fuhs Birkbeck, University of London Outline Reading and writing text files Exceptions The try block catch and finally

More information

Darshan Institute of Engineering & Technology for Diploma Studies

Darshan Institute of Engineering & Technology for Diploma Studies Streams A stream is a sequence of data. In Java a stream is composed of bytes. In java, 3 streams are created for us automatically. 1. System.out : standard output stream 2. System.in : standard input

More information

KMIP 64-bit Binary Alignment Proposal

KMIP 64-bit Binary Alignment Proposal KMIP 64-bit Binary Alignment Proposal To: OASIS KMIP Technical Committee From: Matt Ball, Sun Microsystems, Inc. Date: May 6, 2009 Version: 2 Purpose: To propose a change to the binary encoding such that

More information

Red Hat Enterprise Virtualization 3.6

Red Hat Enterprise Virtualization 3.6 Red Hat Enterprise Virtualization 3.6 Java SDK Guide Using the Red Hat Enterprise Virtualization Java SDK Last Updated: 2017-09-27 Red Hat Enterprise Virtualization 3.6 Java SDK Guide Using the Red Hat

More information

Sophos Mobile Control Network Access Control interface guide

Sophos Mobile Control Network Access Control interface guide Sophos Mobile Control Network Access Control interface guide Product version: 5.1 Document date: July 2015 Contents 1 About Sophos Mobile Control... 3 2 About Network Access Control integration... 4 3

More information

A1- Overview of Previous Project

A1- Overview of Previous Project Appendix to the Project Solar Flare: Solar Plant Data Acquisition & Visualization Samuel Caguana Instructor: Dr. Janusz Zalewski CEN 4935 Senior Software Engineering Project Florida Gulf Coast University

More information

SNMP traps (simple network management protocol)

SNMP traps (simple network management protocol) SNMP traps (simple network management protocol) Nasser M. Abbasi Nov 25, 2000 page compiled on June 29, 2015 at 3:16am Contents 1 Processing on SNMP messages 2 2 Parsing an SNMP v1 UDP pkt 3 3 Program

More information

File IO. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 20

File IO. Computer Science and Engineering College of Engineering The Ohio State University. Lecture 20 File IO Computer Science and Engineering College of Engineering The Ohio State University Lecture 20 I/O Package Overview Package java.io Core concept: streams Ordered sequences of data that have a source

More information

27 Trying it 28 Trying it 29 Coursework: A check sum program 30 Section 3: Example:Counting characters from standard input 31 Aim 32 Counting characte

27 Trying it 28 Trying it 29 Coursework: A check sum program 30 Section 3: Example:Counting characters from standard input 31 Aim 32 Counting characte List of Slides 1 Title 2 Chapter 18: Files 3 Chapter aims 4 Section 2: Example:Counting bytes from standard input 5 Aim 6 Counting bytes from standard input 7 File IO API: IOException 9 Counting bytes

More information

MyDatabaseHelper. public static final String TABLE_NAME = "tbl_bio";

MyDatabaseHelper. public static final String TABLE_NAME = tbl_bio; Page 1 of 5 MyDatabaseHelper import android.content.context; import android.database.sqlite.sqliteopenhelper; class MyDatabaseHelper extends SQLiteOpenHelper { private static final String DB_NAME = "friend_db";

More information

SCAPI. The Secure Computation Application Programming Interface Yehuda Lindell. Bar-Ilan University

SCAPI. The Secure Computation Application Programming Interface  Yehuda Lindell. Bar-Ilan University SCAPI The Secure Computation Application Programming Interface http://crypto.biu.ac.il/about-scapi.php Yehuda Lindell Bar-Ilan University August 20, 2013 CRYPTO 2013 Rump Session Yehuda Lindell SCAPI 20/8/2013

More information

Files and IO, Streams. JAVA Standard Edition

Files and IO, Streams. JAVA Standard Edition Files and IO, Streams JAVA Standard Edition Java - Files and I/O The java.io package contains nearly every class you might ever need to perform input and output (I/O) in Java. All these streams represent

More information

1D/2D android secondary development

1D/2D android secondary development 1D/2D android secondary development The example in this document is developed in eclipse. 1. Import library to project Copy the filefolder and to the Project- libs 2.Copy JAVA

More information

How to use the MESH Certificate Enrolment Tool

How to use the MESH Certificate Enrolment Tool Document filename: How to use the MESH Certificate Enrolment Tool Directorate / Programme Operations and Project Assurance Services Spine Services/ MESH Document Reference Project Manager Andrew

More information

Encryption I. An Introduction

Encryption I. An Introduction Encryption I An Introduction Reading List ADO and SQL Server Security A Simple Guide to Cryptography Protecting Private Data with the Cryptography Namespaces Using MD5 to Encrypt Passwords in a Database

More information

Red Hat Virtualization 4.0 Java SDK Guide

Red Hat Virtualization 4.0 Java SDK Guide Red Hat Virtualization 4.0 Java SDK Guide Using the Red Hat Virtualization Java SDK Red Hat Virtualization Documentation Team Red Hat Virtualization 4.0 Java SDK Guide Using the Red Hat Virtualization

More information

Techniques of Java Programming: Streams in Java

Techniques of Java Programming: Streams in Java Techniques of Java Programming: Streams in Java Manuel Oriol May 8, 2006 1 Introduction Streams are a way of transferring and filtering information. Streams are directed pipes that transfer information

More information

URL Signing and Validation

URL Signing and Validation APPENDIXF This appendix describes the URL signing and validation method for the Cisco Internet Streamer CDS. This appendix contains the following sections: Introduction, page F-1 Configuring the CDS for

More information

18-642: Cryptography 11/15/ Philip Koopman

18-642: Cryptography 11/15/ Philip Koopman 18-642: Cryptography 11/15/2017 Cryptography Overview Anti-Patterns for Cryptography Using a home-made cryptographic algorithm Using private key when public key is required Not considering key distribution

More information

ABSTRACT. Storage is the most prominent feature of cloud computing, growing rapidly in quality

ABSTRACT. Storage is the most prominent feature of cloud computing, growing rapidly in quality ABSTRACT Storage is the most prominent feature of cloud computing, growing rapidly in quality which gives immediate access to information through web service application programming interface (or) web-based

More information

CHAPTER- 3 DESIGN AND ANALYSIS OF A NEW CRYPTOGRAPHIC HASH FUNCTION- R-U HASH

CHAPTER- 3 DESIGN AND ANALYSIS OF A NEW CRYPTOGRAPHIC HASH FUNCTION- R-U HASH CHAPTER- 3 DESIGN AND ANALYSIS OF A NEW CRYPTOGRAPHIC HASH FUNCTION- R-U HASH Traditionally, hash functions were designed in the keyless manner, where a hash function accepts a variable length input message

More information

Refund Selection Single Sign On

Refund Selection Single Sign On BankMobile Refund Selection Single Sign On OVERVIEW The BankMobile Refund Selection Single Sign-On (SSO) solution offers an integrated user authentication system for students to make their initial refund

More information

Amazon S3 Glacier. Developer Guide API Version

Amazon S3 Glacier. Developer Guide API Version Amazon S3 Glacier Developer Guide Amazon S3 Glacier: Developer Guide Table of Contents What Is Amazon S3 Glacier?... 1 Are You a First-Time Glacier User?... 1 Data Model... 2 Vault... 2 Archive... 3 Job...

More information

Java Cookbook. Java Action specification. $ java -Xms512m a.b.c.mymainclass arg1 arg2

Java Cookbook. Java Action specification. $ java -Xms512m a.b.c.mymainclass arg1 arg2 Java Cookbook This document comprehensively describes the procedure of running Java code using Oozie. Its targeted audience is all forms of users who will install, use and operate Oozie. Java Action specification

More information

OpenSSH. 24th February ASBL CSRRT-LU (Computer Security Research and Response Team Luxembourg) 1 / 12

OpenSSH. 24th February ASBL CSRRT-LU (Computer Security Research and Response Team Luxembourg)  1 / 12 OpenSSH ASBL CSRRT-LU (Computer Security Research and Response Team Luxembourg) http://www.csrrt.org/ 24th February 2006 1 / 12 SSH - History 1995 Tatu Ylonen releases ssh-1.0.0 (Forms SSH Communications

More information

OpenSAMLPerl. Description & User Guide. Daniel García Franco January 20, Introduction 1. 2 Install 1. 3 Strucuture of OpenSAMLPerl 3

OpenSAMLPerl. Description & User Guide. Daniel García Franco January 20, Introduction 1. 2 Install 1. 3 Strucuture of OpenSAMLPerl 3 OpenSAMLPerl Description & User Guide January 20, 2006 Abstract The aim of this document is describe the Binding Perl for OpenSAML [1] how it works and how it have been made. As well as supply a user guide

More information

Sharing Secrets using Encryption Facility - Handson

Sharing Secrets using Encryption Facility - Handson Sharing Secrets using Encryption Facility - Handson Lab Steven R. Hart IBM March 12, 2014 Session Number 14963 Encryption Facility for z/os Encryption Facility for z/os is a host based software solution

More information

Generating Charts in PDF Format with JFreeChart and itext

Generating Charts in PDF Format with JFreeChart and itext Generating Charts in PDF Format with JFreeChart and itext Written by David Gilbert May 28, 2002 c 2002, Simba Management Limited. All rights reserved. Everyone is permitted to copy and distribute verbatim

More information

Lecture 9a: Secure Sockets Layer (SSL) March, 2004

Lecture 9a: Secure Sockets Layer (SSL) March, 2004 Internet and Intranet Protocols and Applications Lecture 9a: Secure Sockets Layer (SSL) March, 2004 Arthur Goldberg Computer Science Department New York University artg@cs.nyu.edu Security Achieved by

More information

Principles of Software Construction: Objects, Design and Concurrency. Design Case Study: Stream I/O. toad

Principles of Software Construction: Objects, Design and Concurrency. Design Case Study: Stream I/O. toad Principles of Software Construction: Objects, Design and Concurrency Design Case Study: Stream I/O 15-214 toad Christian Kästner Charlie Garrod School of Computer Science 2014 C Kästner, C Garrod, J Aldrich,

More information

Enabling Secure Sockets Layer for a Microsoft SQL Server JDBC Connection

Enabling Secure Sockets Layer for a Microsoft SQL Server JDBC Connection Enabling Secure Sockets Layer for a Microsoft SQL Server JDBC Connection Secure Sockets Layer (SSL) is the standard security technology for establishing an encrypted link between a web server and a browser.

More information

6 Cryptographic Operations API

6 Cryptographic Operations API 118/202 TEE Internal API Specification Public Release v1.0 6 Cryptographic Operations API This part of the Cryptographic API defines how to actually perform cryptographic operations: Cryptographic operations

More information

SECURE INTEGRATION OF CRYPTOGRAPHIC SOFTWARE

SECURE INTEGRATION OF CRYPTOGRAPHIC SOFTWARE SECURE INTEGRATION OF CRYPTOGRAPHIC SOFTWARE Speaker: Stefan Krüger Folie 1 When a Developer Uses a Crypto API Uses Electronic Codebook (ECB) Folie 2 The Average Developer is no Crypto Expert 88% of Android

More information

Today. Book-keeping. File I/O. Subscribe to sipb-iap-java-students. Inner classes. Debugging tools

Today. Book-keeping. File I/O. Subscribe to sipb-iap-java-students. Inner classes.  Debugging tools Today Book-keeping File I/O Subscribe to sipb-iap-java-students Inner classes http://sipb.mit.edu/iap/java/ Debugging tools Problem set 1 questions? Problem set 2 released tomorrow 1 2 So far... Reading

More information

I/O in Java I/O streams vs. Reader/Writer. HW#3 due today Reading Assignment: Java tutorial on Basic I/O

I/O in Java I/O streams vs. Reader/Writer. HW#3 due today Reading Assignment: Java tutorial on Basic I/O I/O 10-7-2013 I/O in Java I/O streams vs. Reader/Writer HW#3 due today Reading Assignment: Java tutorial on Basic I/O public class Swimmer implements Cloneable { public Date geteventdate() { return (Date)

More information

10/8/2018 Programming Data Structures. class diagram for assignment 08 review: polymorphism review: exception new: File I/O

10/8/2018 Programming Data Structures. class diagram for assignment 08 review: polymorphism review: exception new: File I/O 10/8/2018 Programming Data Structures class diagram for assignment 08 review: polymorphism review: exception new: File I/O 1 class diagram (informal) link the parent classes and child classes describe

More information

Overview. SSL Cryptography Overview CHAPTER 1

Overview. SSL Cryptography Overview CHAPTER 1 CHAPTER 1 Secure Sockets Layer (SSL) is an application-level protocol that provides encryption technology for the Internet. SSL ensures the secure transmission of data between a client and a server through

More information

Cryptography. If privacy is outlawed, only outlaws will have privacy. Zimmerman (author of PGP) 1/18

Cryptography. If privacy is outlawed, only outlaws will have privacy. Zimmerman (author of PGP) 1/18 Cryptography Symmetric versus asymmetric cryptography. In symmetric the encryption and decryption keys are the same while in asymmetric cryptography they are different. Public key cryptography. (asymmetric)

More information

SafeNet KMIP and Google Drive Integration Guide

SafeNet KMIP and Google Drive Integration Guide SafeNet KMIP and Google Drive Integration Guide Documentation Version: 20130802 Table of Contents CHAPTER 1 GOOGLE DRIVE......................................... 2 Introduction...............................................................

More information

Let's Encrypt - Free SSL certificates for the masses. Pete Helgren Bible Study Fellowship International San Antonio, TX

Let's Encrypt - Free SSL certificates for the masses. Pete Helgren Bible Study Fellowship International San Antonio, TX Let's Encrypt - Free SSL certificates for the masses Pete Helgren Bible Study Fellowship International San Antonio, TX Agenda Overview of data security Encoding and Encryption SSL and TLS Certficate options

More information

ZL Unified Archive High Performance API Kit

ZL Unified Archive High Performance API Kit 2015 ZL Unified Archive 8.0.3 High Performance API Kit ZLUA 8.0.3 Copyright 2016 ZL Technologies Inc. January 2016 Copyright 2016 ZL Technologies, Inc. All rights reserved. ZL Technologies, Inc. ( ZLTI,

More information

3.2 The EncryptionMethod Element

3.2 The EncryptionMethod Element 3.2 The EncryptionMethod Element EncryptionMethod is an optional element that describes the encryption algorithm applied to the cipher data. If the element is absent, the encryption algorithm must be known

More information

CS61B, Spring 2003 Discussion #17 Amir Kamil UC Berkeley 5/12/03

CS61B, Spring 2003 Discussion #17 Amir Kamil UC Berkeley 5/12/03 CS61B, Spring 2003 Discussion #17 Amir Kamil UC Berkeley 5/12/03 Topics: Threading, Synchronization 1 Threading Suppose we want to create an automated program that hacks into a server. Many encryption

More information

Oracle NoSQL Database. Large Object API. 12c Release 1

Oracle NoSQL Database. Large Object API. 12c Release 1 Oracle NoSQL Database Large Object API 12c Release 1 (Library Version 12.1.3.0) Legal Notice Copyright 2011, 2012, 2013, 2014, Oracle and/or its affiliates. All rights reserved. This software and related

More information