Keys.java

1
/*-
2
 * #%L
3
 * io.earcam.utilitarian.security
4
 * %%
5
 * Copyright (C) 2017 earcam
6
 * %%
7
 * SPDX-License-Identifier: (BSD-3-Clause OR EPL-1.0 OR Apache-2.0 OR MIT)
8
 *
9
 * You <b>must</b> choose to accept, in full - any individual or combination of
10
 * the following licenses:
11
 * <ul>
12
 * 	<li><a href="https://opensource.org/licenses/BSD-3-Clause">BSD-3-Clause</a></li>
13
 * 	<li><a href="https://www.eclipse.org/legal/epl-v10.html">EPL-1.0</a></li>
14
 * 	<li><a href="https://www.apache.org/licenses/LICENSE-2.0">Apache-2.0</a></li>
15
 * 	<li><a href="https://opensource.org/licenses/MIT">MIT</a></li>
16
 * </ul>
17
 * #L%
18
 */
19
package io.earcam.utilitarian.security;
20
21
import java.security.KeyPair;
22
import java.security.KeyPairGenerator;
23
24
import io.earcam.unexceptional.Exceptional;
25
import io.earcam.unexceptional.UncheckedSecurityException;
26
27
public class Keys {
28
29
	private static final int DEFAULT_KEYSIZE = 2048;
30
31
32
	private Keys()
33
	{}
34
35
36
	/**
37
	 * RSA key pair of size {@value #DEFAULT_KEYSIZE}
38
	 * 
39
	 * @return a key pair generated with RSA
40
	 * @throws UncheckedSecurityException if a {@link java.security.NoSuchAlgorithmException} is thrown
41
	 */
42
	public static KeyPair rsa()
43
	{
44 1 1. rsa : mutated return of Object value for io/earcam/utilitarian/security/Keys::rsa to ( if (x != null) null else throw new RuntimeException ) → KILLED
		return keyPair("RSA");
45
	}
46
47
48
	/**
49
	 * DSA key pair of size {@value #DEFAULT_KEYSIZE}
50
	 * 
51
	 * @return a key pair generated with DSA
52
	 * @throws UncheckedSecurityException if a {@link java.security.NoSuchAlgorithmException} is thrown
53
	 */
54
	public static KeyPair dsa()
55
	{
56 1 1. dsa : mutated return of Object value for io/earcam/utilitarian/security/Keys::dsa to ( if (x != null) null else throw new RuntimeException ) → KILLED
		return keyPair("DSA");
57
	}
58
59
60
	/**
61
	 * Generate an asymmetric key pair of size {@value #DEFAULT_KEYSIZE} for the supplied {@code algorithm}
62
	 * 
63
	 * @param algorithm e.g. RSA, DSA
64
	 * @return a key pair generated with the supplied {@code algorithm}
65
	 * @throws UncheckedSecurityException if a {@link java.security.NoSuchAlgorithmException} is thrown
66
	 */
67
	public static KeyPair keyPair(String algorithm)
68
	{
69 1 1. keyPair : mutated return of Object value for io/earcam/utilitarian/security/Keys::keyPair to ( if (x != null) null else throw new RuntimeException ) → KILLED
		return keyPair(algorithm, DEFAULT_KEYSIZE);
70
	}
71
72
73
	/**
74
	 * Generate an asymmetric key pair of size {@code keysize} for the supplied {@code algorithm}
75
	 * 
76
	 * @param algorithm e.g. RSA, DSA
77
	 * @param keysize
78
	 * @return a key pair generated with the supplied {@code algorithm}
79
	 * @throws UncheckedSecurityException if a {@link java.security.NoSuchAlgorithmException} is thrown
80
	 */
81
	public static KeyPair keyPair(String algorithm, int keysize)
82
	{
83
		KeyPairGenerator keyPairGenerator = Exceptional.apply(KeyPairGenerator::getInstance, algorithm);
84 1 1. keyPair : removed call to java/security/KeyPairGenerator::initialize → SURVIVED
		keyPairGenerator.initialize(keysize);
85 1 1. keyPair : mutated return of Object value for io/earcam/utilitarian/security/Keys::keyPair to ( if (x != null) null else throw new RuntimeException ) → KILLED
		return keyPairGenerator.generateKeyPair();
86
	}
87
}

Mutations

44

1.1
Location : rsa
Killed by : io.earcam.utilitarian.security.KeysTest.canGenerateDefaultRsa()
mutated return of Object value for io/earcam/utilitarian/security/Keys::rsa to ( if (x != null) null else throw new RuntimeException ) → KILLED

56

1.1
Location : dsa
Killed by : io.earcam.utilitarian.security.KeysTest.canGenerateDefaultDsa()
mutated return of Object value for io/earcam/utilitarian/security/Keys::dsa to ( if (x != null) null else throw new RuntimeException ) → KILLED

69

1.1
Location : keyPair
Killed by : io.earcam.utilitarian.security.KeysTest.canGenerateDefaultDsa()
mutated return of Object value for io/earcam/utilitarian/security/Keys::keyPair to ( if (x != null) null else throw new RuntimeException ) → KILLED

84

1.1
Location : keyPair
Killed by : none
removed call to java/security/KeyPairGenerator::initialize → SURVIVED

85

1.1
Location : keyPair
Killed by : io.earcam.utilitarian.security.KeysTest.canGenerateDefaultDsa()
mutated return of Object value for io/earcam/utilitarian/security/Keys::keyPair to ( if (x != null) null else throw new RuntimeException ) → KILLED

Active mutators

Tests examined


Report generated by PIT 1.4.3