mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-07-07 18:25:23 +00:00
git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@89115 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
238 lines
7.1 KiB
Java
238 lines
7.1 KiB
Java
/*
|
|
* Copyright (C) 2005-2014 Alfresco Software Limited.
|
|
*
|
|
* This file is part of Alfresco
|
|
*
|
|
* Alfresco is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU Lesser General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* Alfresco is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public License
|
|
* along with Alfresco. If not, see <http://www.gnu.org/licenses/>.
|
|
*/
|
|
|
|
package org.alfresco.repo.domain.contentdata;
|
|
|
|
import java.io.Serializable;
|
|
import java.nio.ByteBuffer;
|
|
|
|
import org.alfresco.service.cmr.repository.ContentUrlKey;
|
|
import org.apache.commons.codec.DecoderException;
|
|
|
|
/**
|
|
*
|
|
* @author sglover
|
|
*
|
|
*/
|
|
public class ContentUrlKeyEntity implements Serializable
|
|
{
|
|
private static final long serialVersionUID = -6594309522849585169L;
|
|
|
|
private Long id;
|
|
private Long contentUrlId;
|
|
private byte[] encryptedKeyAsBytes;
|
|
private Integer keySize;
|
|
private String algorithm;
|
|
private String masterKeystoreId;
|
|
private String masterKeyAlias;
|
|
private Long unencryptedFileSize;
|
|
|
|
public ContentUrlKeyEntity()
|
|
{
|
|
}
|
|
|
|
public ContentUrlKey getContentUrlKey() throws DecoderException
|
|
{
|
|
ContentUrlKey contentUrlKey = new ContentUrlKey();
|
|
contentUrlKey.setAlgorithm(algorithm);
|
|
contentUrlKey.setKeySize(keySize);
|
|
contentUrlKey.setEncryptedKeyBytes(ByteBuffer.wrap(encryptedKeyAsBytes));
|
|
contentUrlKey.setMasterKeyAlias(masterKeyAlias);
|
|
contentUrlKey.setMasterKeystoreId(masterKeystoreId);
|
|
contentUrlKey.setUnencryptedFileSize(unencryptedFileSize);
|
|
return contentUrlKey;
|
|
}
|
|
|
|
public Long getContentUrlId()
|
|
{
|
|
return contentUrlId;
|
|
}
|
|
|
|
public void setContentUrlId(Long contentUrlId)
|
|
{
|
|
this.contentUrlId = contentUrlId;
|
|
}
|
|
|
|
public void setEncryptedKeyAsBytes(byte[] encryptedKeyAsBytes)
|
|
{
|
|
this.encryptedKeyAsBytes = encryptedKeyAsBytes;
|
|
}
|
|
|
|
public byte[] getEncryptedKeyAsBytes()
|
|
{
|
|
return encryptedKeyAsBytes;
|
|
}
|
|
|
|
public void setEncryptedKey(EncryptedKey encryptedKey)
|
|
{
|
|
byte[] encryptedKeyAsBytes = new byte[encryptedKey.getByteBuffer().remaining()];
|
|
encryptedKey.getByteBuffer().get(encryptedKeyAsBytes);
|
|
|
|
this.encryptedKeyAsBytes = encryptedKeyAsBytes;
|
|
this.keySize = encryptedKeyAsBytes.length*8;
|
|
this.algorithm = encryptedKey.getAlgorithm();
|
|
this.masterKeyAlias = encryptedKey.getMasterKeyAlias();
|
|
this.masterKeystoreId = encryptedKey.getMasterKeystoreId();
|
|
}
|
|
|
|
public static ContentUrlKeyEntity setEncryptedKey(ContentUrlKeyEntity existing, EncryptedKey encryptedKey)
|
|
{
|
|
ContentUrlKeyEntity newContentUrlKeyEntity = new ContentUrlKeyEntity();
|
|
|
|
byte[] encryptedKeyAsBytes = new byte[encryptedKey.getByteBuffer().remaining()];
|
|
encryptedKey.getByteBuffer().get(encryptedKeyAsBytes);
|
|
newContentUrlKeyEntity.setEncryptedKeyAsBytes(encryptedKeyAsBytes);
|
|
newContentUrlKeyEntity.setKeySize(encryptedKeyAsBytes.length*8);
|
|
newContentUrlKeyEntity.setAlgorithm(encryptedKey.getAlgorithm());
|
|
newContentUrlKeyEntity.setMasterKeyAlias(encryptedKey.getMasterKeyAlias());
|
|
newContentUrlKeyEntity.setMasterKeystoreId(encryptedKey.getMasterKeystoreId());
|
|
newContentUrlKeyEntity.setContentUrlId(existing.getContentUrlId());
|
|
newContentUrlKeyEntity.setUnencryptedFileSize(existing.getUnencryptedFileSize());
|
|
newContentUrlKeyEntity.setId(existing.getId());
|
|
|
|
return newContentUrlKeyEntity;
|
|
}
|
|
|
|
public Long getId()
|
|
{
|
|
return id;
|
|
}
|
|
|
|
public void setId(Long id)
|
|
{
|
|
this.id = id;
|
|
}
|
|
|
|
public EncryptedKey getEncryptedKey() throws DecoderException
|
|
{
|
|
EncryptedKey encryptedKey = new EncryptedKey(getMasterKeystoreId(), getMasterKeyAlias(),
|
|
getAlgorithm(), ByteBuffer.wrap(this.encryptedKeyAsBytes));
|
|
return encryptedKey;
|
|
}
|
|
|
|
public Long getUnencryptedFileSize()
|
|
{
|
|
return unencryptedFileSize;
|
|
}
|
|
|
|
public void setUnencryptedFileSize(Long unencryptedFileSize)
|
|
{
|
|
this.unencryptedFileSize = unencryptedFileSize;
|
|
}
|
|
|
|
public void setKeySize(Integer keySize)
|
|
{
|
|
this.keySize = keySize;
|
|
}
|
|
|
|
public Integer getKeySize()
|
|
{
|
|
return keySize;
|
|
}
|
|
|
|
public String getAlgorithm()
|
|
{
|
|
return algorithm;
|
|
}
|
|
|
|
public void setAlgorithm(String algorithm)
|
|
{
|
|
this.algorithm = algorithm;
|
|
}
|
|
|
|
public String getMasterKeystoreId()
|
|
{
|
|
return masterKeystoreId;
|
|
}
|
|
|
|
public void setMasterKeystoreId(String masterKeystoreId)
|
|
{
|
|
this.masterKeystoreId = masterKeystoreId;
|
|
}
|
|
|
|
public String getMasterKeyAlias()
|
|
{
|
|
return masterKeyAlias;
|
|
}
|
|
|
|
public void setMasterKeyAlias(String masterKeyAlias)
|
|
{
|
|
this.masterKeyAlias = masterKeyAlias;
|
|
}
|
|
|
|
@Override
|
|
public int hashCode()
|
|
{
|
|
final int prime = 31;
|
|
int result = 1;
|
|
result = prime * result
|
|
+ ((algorithm == null) ? 0 : algorithm.hashCode());
|
|
result = prime * result + ((id == null) ? 0 : id.hashCode());
|
|
result = prime * result
|
|
+ ((masterKeyAlias == null) ? 0 : masterKeyAlias.hashCode());
|
|
result = prime
|
|
* result
|
|
+ ((masterKeystoreId == null) ? 0 : masterKeystoreId.hashCode());
|
|
return result;
|
|
}
|
|
|
|
@Override
|
|
public boolean equals(Object obj)
|
|
{
|
|
if (this == obj)
|
|
return true;
|
|
if (obj == null)
|
|
return false;
|
|
if (getClass() != obj.getClass())
|
|
return false;
|
|
ContentUrlKeyEntity other = (ContentUrlKeyEntity) obj;
|
|
if (algorithm == null) {
|
|
if (other.algorithm != null)
|
|
return false;
|
|
} else if (!algorithm.equals(other.algorithm))
|
|
return false;
|
|
if (id == null) {
|
|
if (other.id != null)
|
|
return false;
|
|
} else if (!id.equals(other.id))
|
|
return false;
|
|
if (masterKeyAlias == null) {
|
|
if (other.masterKeyAlias != null)
|
|
return false;
|
|
} else if (!masterKeyAlias.equals(other.masterKeyAlias))
|
|
return false;
|
|
if (masterKeystoreId == null) {
|
|
if (other.masterKeystoreId != null)
|
|
return false;
|
|
} else if (!masterKeystoreId.equals(other.masterKeystoreId))
|
|
return false;
|
|
return true;
|
|
}
|
|
|
|
@Override
|
|
public String toString()
|
|
{
|
|
return "ContentUrlKeyEntity [id=" + id + ", encryptedKeyAsBytes="
|
|
+ encryptedKeyAsBytes+ ", keySize=" + keySize + ", algorithm="
|
|
+ algorithm + ", masterKeystoreId=" + masterKeystoreId
|
|
+ ", masterKeyAlias=" + masterKeyAlias
|
|
+ ", unencryptedFileSize=" + unencryptedFileSize + "]";
|
|
}
|
|
}
|