Skip to content

Commit

Permalink
Merge pull request #17 from 3KeyCompany/release/1.2.0
Browse files Browse the repository at this point in the history
Release version 1.2.0
  • Loading branch information
3keyroman authored Jun 2, 2023
2 parents 3df4224 + 6238d7b commit e7be967
Show file tree
Hide file tree
Showing 17 changed files with 236 additions and 153 deletions.
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

<groupId>com.czertainly</groupId>
<artifactId>software-cryptography-provider</artifactId>
<version>1.1.0</version>
<version>1.2.0</version>
<name>CZERTAINLY-Software-Cryptography-Provider</name>

<properties>
Expand All @@ -24,7 +24,7 @@
<dependency>
<groupId>com.czertainly</groupId>
<artifactId>interfaces</artifactId>
<version>2.7.0</version>
<version>2.8.0</version>
</dependency>

<!-- https://mvnrepository.com/artifact/net.sf.kxml/kxml2 -->
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
import com.czertainly.api.model.common.attribute.v2.BaseAttribute;
import com.czertainly.api.model.common.attribute.v2.content.BaseAttributeContent;
import com.czertainly.api.model.common.attribute.v2.content.StringAttributeContent;
import com.czertainly.api.model.common.enums.cryptography.KeyAlgorithm;
import com.czertainly.api.model.connector.cryptography.token.TokenInstanceDto;
import com.czertainly.cp.soft.attribute.*;
import com.czertainly.cp.soft.collection.KeyAlgorithm;
import com.czertainly.cp.soft.exception.NotSupportedException;
import com.czertainly.cp.soft.service.TokenInstanceService;
import org.springframework.beans.factory.annotation.Autowired;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,12 @@ public void setAttributeService(AttributeService attributeService) {

@Override
public EncryptDataResponseDto encryptData(String uuid, String keyUuid, CipherDataRequestDto request) throws NotFoundException {
throw new NotSupportedException("Cipher not supported.");
return cryptographicOperationsService.encryptData(UUID.fromString(uuid), UUID.fromString(keyUuid), request);
}

@Override
public DecryptDataResponseDto decryptData(String uuid, String keyUuid, CipherDataRequestDto request) throws NotFoundException {
throw new NotSupportedException("Cipher not supported.");
return cryptographicOperationsService.decryptData(UUID.fromString(uuid), UUID.fromString(keyUuid), request);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,13 @@
import com.czertainly.api.model.common.attribute.v2.content.StringAttributeContent;
import com.czertainly.api.model.common.attribute.v2.properties.DataAttributeProperties;
import com.czertainly.api.model.common.attribute.v2.properties.MetadataAttributeProperties;
import com.czertainly.cp.soft.collection.KeyAlgorithm;
import com.czertainly.api.model.common.enums.cryptography.KeyAlgorithm;

import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;

public class KeyAttributes {

Expand Down Expand Up @@ -83,7 +85,11 @@ public static BaseAttribute buildDataKeyAlgorithmSelect() {
attributeProperties.setReadOnly(false);
attribute.setProperties(attributeProperties);
// set content
attribute.setContent(KeyAlgorithm.asStringAttributeContentList());
attribute.setContent(
Stream.of(KeyAlgorithm.values())
.map(item -> new StringAttributeContent(item.getLabel(), item.getCode()))
.collect(Collectors.toList())
);

return attribute;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
package com.czertainly.cp.soft.attribute;

public class RsaCipherAttributes {
public static final String ATTRIBUTE_DATA_RSA_ENC_SCHEME_NAME = "data_rsaEncScheme";
public static final String ATTRIBUTE_DATA_RSA_OAEP_HASH_NAME = "data_rsaOaepHash";
public static final String ATTRIBUTE_DATA_RSA_OAEP_USE_MGF_NAME = "data_rsaOaepMgf";
}
88 changes: 0 additions & 88 deletions src/main/java/com/czertainly/cp/soft/collection/KeyAlgorithm.java

This file was deleted.

22 changes: 22 additions & 0 deletions src/main/java/com/czertainly/cp/soft/config/WebAppConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.czertainly.cp.soft.config;

import com.czertainly.api.model.common.enums.cryptography.KeyAlgorithm;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.convert.converter.Converter;
import org.springframework.format.FormatterRegistry;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

@Configuration
public class WebAppConfig implements WebMvcConfigurer {
@Override
public void addFormatters(FormatterRegistry registry) {
registry.addConverter(new Converter<String, KeyAlgorithm>() {
@Override
public KeyAlgorithm convert(String source) {
return KeyAlgorithm.findByCode(source);
}
});
}
}

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package com.czertainly.cp.soft.dao.converter;

import com.czertainly.api.model.common.enums.cryptography.KeyAlgorithm;
import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;

@Converter(autoApply = true)
public class KeyAlgorithmConverter implements AttributeConverter<KeyAlgorithm, String> {

@Override
public String convertToDatabaseColumn(KeyAlgorithm keyAlgorithm) {
if (keyAlgorithm == null) {
return null;
}
return keyAlgorithm.name();
}

@Override
public KeyAlgorithm convertToEntityAttribute(String keyAlgorithm) {
if (keyAlgorithm == null) {
return null;
}
return KeyAlgorithm.valueOf(keyAlgorithm);
}

}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.czertainly.cp.soft.dao.converter;

import com.czertainly.api.model.connector.cryptography.enums.KeyFormat;
import com.czertainly.api.model.common.enums.cryptography.KeyFormat;
import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.czertainly.cp.soft.dao.converter;

import com.czertainly.api.model.connector.cryptography.enums.KeyType;
import com.czertainly.api.model.common.enums.cryptography.KeyType;
import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Converter;

Expand Down
12 changes: 6 additions & 6 deletions src/main/java/com/czertainly/cp/soft/dao/entity/KeyData.java
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package com.czertainly.cp.soft.dao.entity;

import com.czertainly.api.model.common.attribute.v2.MetadataAttribute;
import com.czertainly.api.model.connector.cryptography.enums.CryptographicAlgorithm;
import com.czertainly.api.model.connector.cryptography.enums.KeyFormat;
import com.czertainly.api.model.connector.cryptography.enums.KeyType;
import com.czertainly.api.model.common.enums.cryptography.KeyAlgorithm;
import com.czertainly.api.model.common.enums.cryptography.KeyFormat;
import com.czertainly.api.model.common.enums.cryptography.KeyType;
import com.czertainly.api.model.connector.cryptography.key.KeyDataResponseDto;
import com.czertainly.api.model.connector.cryptography.key.value.*;
import com.czertainly.core.util.AttributeDefinitionUtils;
Expand All @@ -29,7 +29,7 @@ public class KeyData extends UniquelyIdentified {
private KeyType type;

@Column(name = "algorithm")
private CryptographicAlgorithm algorithm;
private KeyAlgorithm algorithm;

@Column(name = "format")
private KeyFormat format;
Expand Down Expand Up @@ -74,11 +74,11 @@ public void setType(KeyType type) {
this.type = type;
}

public CryptographicAlgorithm getAlgorithm() {
public KeyAlgorithm getAlgorithm() {
return algorithm;
}

public void setAlgorithm(CryptographicAlgorithm algorithm) {
public void setAlgorithm(KeyAlgorithm algorithm) {
this.algorithm = algorithm;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,4 +13,7 @@ public interface CryptographicOperationsService {

RandomDataResponseDto randomData(String uuid, RandomDataRequestDto request);

DecryptDataResponseDto decryptData(UUID uuid, UUID keyUuid, CipherDataRequestDto request) throws NotFoundException;

EncryptDataResponseDto encryptData(UUID uuid, UUID keyUuid, CipherDataRequestDto request) throws NotFoundException;
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.czertainly.cp.soft.service.impl;

import com.czertainly.api.exception.NotFoundException;
import com.czertainly.api.model.connector.cryptography.enums.KeyType;
import com.czertainly.api.model.common.enums.cryptography.KeyType;
import com.czertainly.api.model.connector.cryptography.operations.*;
import com.czertainly.api.model.connector.cryptography.operations.data.SignatureRequestData;
import com.czertainly.api.model.connector.cryptography.operations.data.SignatureResponseData;
Expand All @@ -10,6 +10,7 @@
import com.czertainly.cp.soft.exception.CryptographicOperationException;
import com.czertainly.cp.soft.service.CryptographicOperationsService;
import com.czertainly.cp.soft.service.KeyManagementService;
import com.czertainly.cp.soft.util.CipherUtil;
import com.czertainly.cp.soft.util.SecureRandomUtil;
import com.czertainly.cp.soft.util.SignatureUtil;
import org.bouncycastle.jce.provider.BouncyCastleProvider;
Expand Down Expand Up @@ -126,4 +127,16 @@ public RandomDataResponseDto randomData(String uuid, RandomDataRequestDto reques
response.setData(bytes);
return response;
}

@Override
public DecryptDataResponseDto decryptData(UUID uuid, UUID keyUuid, CipherDataRequestDto request) throws NotFoundException {
KeyData key = keyManagementService.getKeyEntity(uuid, keyUuid);
return CipherUtil.decrypt(request, key);
}

@Override
public EncryptDataResponseDto encryptData(UUID uuid, UUID keyUuid, CipherDataRequestDto request) throws NotFoundException {
KeyData key = keyManagementService.getKeyEntity(uuid, keyUuid);
return CipherUtil.encrypt(request, key);
}
}
Loading

0 comments on commit e7be967

Please sign in to comment.