/**
* Licensed to the Austrian Association for Software Tool Integration (AASTI)
* under one or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information regarding copyright
* ownership. The AASTI licenses this file to you under the Apache License,
* Version 2.0 (the "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.openengsb.core.api.security.model;
import java.io.Serializable;
/**
* Representation of an encrypted message that is ready to be serialized and transported. When transporting an instance
* of this class, the content is supposed to be encrypted.
*
* This should only be used for incoming messages as the session-key is encrypted using asymmetric cryptography.
*
* This is the way a client is supposed to create a request:
* <ul>
* <li>marshal the message to a byte[]</li>
* <li>generate a session-key with using the correct algorithm (default is AES-128)</li>
* <li>encrypt the message with the session-key</li>
* <li>encrypt the session-key with the server's public key</li>
* </ul>
*
* The response to the client is then encrypted with the same session-key
*/
@SuppressWarnings("serial")
public class EncryptedMessage implements Serializable {
/**
* Contains the content of the message to transport, encrypted with the sessionKey.
*/
private byte[] encryptedContent;
/**
* Contains the encrypted Session key (that has been encrypted using the servers public key)
*/
private byte[] encryptedKey;
public EncryptedMessage() {
}
public EncryptedMessage(byte[] encryptedContent, byte[] encryptedKey) {
this.encryptedContent = encryptedContent;
this.encryptedKey = encryptedKey;
}
public byte[] getEncryptedContent() {
return encryptedContent;
}
public void setEncryptedContent(byte[] encryptedContent) {
this.encryptedContent = encryptedContent;
}
public byte[] getEncryptedKey() {
return encryptedKey;
}
public void setEncryptedKey(byte[] encryptedKey) {
this.encryptedKey = encryptedKey;
}
}