Added license
This commit is contained in:
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* The NoConfig is a means to store the server secret key, database address
|
||||
* and other configs.
|
||||
*/
|
||||
|
||||
package nodash.core;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* The NoCore class is the interface between which the wrapper application
|
||||
* (wrapplication?) accesses no- functionality.
|
||||
*/
|
||||
|
||||
package nodash.core;
|
||||
|
||||
import java.io.File;
|
||||
@@ -6,7 +25,7 @@ import java.security.PublicKey;
|
||||
import nodash.core.spheres.NoByteSetSphere;
|
||||
import nodash.core.spheres.NoHashSphere;
|
||||
import nodash.core.spheres.NoSessionSphere;
|
||||
import nodash.exceptions.NoDashSessionBadUUID;
|
||||
import nodash.exceptions.NoDashSessionBadUUIDException;
|
||||
import nodash.exceptions.NoSessionAlreadyAwaitingConfirmationException;
|
||||
import nodash.exceptions.NoSessionConfirmedException;
|
||||
import nodash.exceptions.NoSessionExpiredException;
|
||||
@@ -43,24 +62,24 @@ public final class NoCore {
|
||||
return NoSessionSphere.registerUser(user, password);
|
||||
}
|
||||
|
||||
public static NoUser getUser(byte[] cookie) throws NoSessionExpiredException, NoSessionConfirmedException, NoDashSessionBadUUID {
|
||||
public static NoUser getUser(byte[] cookie) throws NoSessionExpiredException, NoSessionConfirmedException, NoDashSessionBadUUIDException {
|
||||
/* Facilitates step 3
|
||||
* allow website-side modifications to the NoUser or NoUser inheritant */
|
||||
return NoSessionSphere.getUser(cookie);
|
||||
}
|
||||
|
||||
public static NoState getSessionState(byte[] cookie) throws NoSessionExpiredException, NoSessionConfirmedException, NoDashSessionBadUUID {
|
||||
public static NoState getSessionState(byte[] cookie) throws NoSessionExpiredException, NoSessionConfirmedException, NoDashSessionBadUUIDException {
|
||||
/* Facilitates step 3
|
||||
* allow front-side to keep track of session state */
|
||||
return NoSessionSphere.getState(cookie);
|
||||
}
|
||||
|
||||
public static byte[] requestSave(byte[] cookie, char[] password) throws NoSessionExpiredException, NoSessionConfirmedException, NoSessionNotChangedException, NoSessionAlreadyAwaitingConfirmationException, NoDashSessionBadUUID {
|
||||
public static byte[] requestSave(byte[] cookie, char[] password) throws NoSessionExpiredException, NoSessionConfirmedException, NoSessionNotChangedException, NoSessionAlreadyAwaitingConfirmationException, NoDashSessionBadUUIDException {
|
||||
/* Step 4. Provides a user with the new binary file */
|
||||
return NoSessionSphere.save(cookie, password);
|
||||
}
|
||||
|
||||
public static void confirm(byte[] cookie, char[] password, byte[] data) throws NoSessionExpiredException, NoSessionConfirmedException, NoSessionNotAwaitingConfirmationException, NoUserNotValidException, NoDashSessionBadUUID {
|
||||
public static void confirm(byte[] cookie, char[] password, byte[] data) throws NoSessionExpiredException, NoSessionConfirmedException, NoSessionNotAwaitingConfirmationException, NoUserNotValidException, NoDashSessionBadUUIDException {
|
||||
/* Step 5. Assumes the user has re-uploaded the file along with providing the same password.
|
||||
* Further attempts of getUser or getSessionState will fail with a NoSessionExpiredException*/
|
||||
NoSessionSphere.confirm(cookie, password, data);
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* The NoRegister class is a simple model used to return both cookies and
|
||||
* download data upon user registration.
|
||||
*/
|
||||
|
||||
package nodash.core;
|
||||
|
||||
public final class NoRegister {
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* The NoUtil class encapsulates no- standard functions such as encryption/decryption
|
||||
* and hashing algorithms.
|
||||
*/
|
||||
|
||||
package nodash.core;
|
||||
|
||||
import java.security.InvalidKeyException;
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* The NoByteSetSphere stores user-to-user influences and their encryption
|
||||
* keys in an accessible manner.
|
||||
*/
|
||||
|
||||
package nodash.core.spheres;
|
||||
|
||||
import java.security.PublicKey;
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* The NoHashSpehre stores database hashes for user verification.
|
||||
*/
|
||||
|
||||
package nodash.core.spheres;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* The NoSessionSphere stores user sessions and allows their access and
|
||||
* manipulation with the use of their UUID.
|
||||
*/
|
||||
|
||||
package nodash.core.spheres;
|
||||
|
||||
import java.util.Collections;
|
||||
@@ -8,7 +27,7 @@ import java.util.concurrent.ConcurrentHashMap;
|
||||
import nodash.core.NoRegister;
|
||||
import nodash.exceptions.NoByteSetBadDecryptionException;
|
||||
import nodash.exceptions.NoDashFatalException;
|
||||
import nodash.exceptions.NoDashSessionBadUUID;
|
||||
import nodash.exceptions.NoDashSessionBadUUIDException;
|
||||
import nodash.exceptions.NoSessionAlreadyAwaitingConfirmationException;
|
||||
import nodash.exceptions.NoSessionConfirmedException;
|
||||
import nodash.exceptions.NoSessionExpiredException;
|
||||
@@ -41,7 +60,7 @@ public final class NoSessionSphere {
|
||||
NoSessionSphere.sessions.remove(uuid);
|
||||
session = null;
|
||||
}
|
||||
} catch (NoDashSessionBadUUID e) {
|
||||
} catch (NoDashSessionBadUUIDException e) {
|
||||
// Suppress, doesn't matter
|
||||
}
|
||||
}
|
||||
@@ -96,7 +115,7 @@ public final class NoSessionSphere {
|
||||
return session.getEncryptedUUID();
|
||||
}
|
||||
|
||||
public static NoUser getUser(byte[] encryptedUUID) throws NoDashSessionBadUUID, NoSessionExpiredException, NoSessionConfirmedException {
|
||||
public static NoUser getUser(byte[] encryptedUUID) throws NoDashSessionBadUUIDException, NoSessionExpiredException, NoSessionConfirmedException {
|
||||
UUID uuid = NoSession.decryptUUID(encryptedUUID);
|
||||
if (NoSessionSphere.sessions.containsKey(uuid)) {
|
||||
NoSessionSphere.pruneSingle(uuid);
|
||||
@@ -105,7 +124,7 @@ public final class NoSessionSphere {
|
||||
throw new NoSessionExpiredException();
|
||||
}
|
||||
|
||||
public static NoState getState(byte[] encryptedUUID) throws NoDashSessionBadUUID, NoSessionExpiredException, NoSessionConfirmedException {
|
||||
public static NoState getState(byte[] encryptedUUID) throws NoDashSessionBadUUIDException, NoSessionExpiredException, NoSessionConfirmedException {
|
||||
UUID uuid = NoSession.decryptUUID(encryptedUUID);
|
||||
if (NoSessionSphere.sessions.containsKey(uuid)) {
|
||||
NoSessionSphere.pruneSingle(uuid);
|
||||
@@ -115,7 +134,7 @@ public final class NoSessionSphere {
|
||||
throw new NoSessionExpiredException();
|
||||
}
|
||||
|
||||
public static synchronized byte[] save(byte[] encryptedUUID, char[] password) throws NoDashSessionBadUUID, NoSessionExpiredException, NoSessionConfirmedException, NoSessionNotChangedException, NoSessionAlreadyAwaitingConfirmationException {
|
||||
public static synchronized byte[] save(byte[] encryptedUUID, char[] password) throws NoDashSessionBadUUIDException, NoSessionExpiredException, NoSessionConfirmedException, NoSessionNotChangedException, NoSessionAlreadyAwaitingConfirmationException {
|
||||
UUID uuid = NoSession.decryptUUID(encryptedUUID);
|
||||
if (NoSessionSphere.sessions.containsKey(uuid)) {
|
||||
NoSessionSphere.pruneSingle(uuid);
|
||||
@@ -131,7 +150,7 @@ public final class NoSessionSphere {
|
||||
throw new NoSessionExpiredException();
|
||||
}
|
||||
|
||||
public static synchronized void confirm(byte[] encryptedUUID, char[] password, byte[] data) throws NoDashSessionBadUUID, NoSessionExpiredException, NoSessionConfirmedException, NoSessionNotAwaitingConfirmationException, NoUserNotValidException {
|
||||
public static synchronized void confirm(byte[] encryptedUUID, char[] password, byte[] data) throws NoDashSessionBadUUIDException, NoSessionExpiredException, NoSessionConfirmedException, NoSessionNotAwaitingConfirmationException, NoUserNotValidException {
|
||||
UUID uuid = NoSession.decryptUUID(encryptedUUID);
|
||||
if (NoSessionSphere.sessions.containsKey(uuid)) {
|
||||
NoSessionSphere.pruneSingle(uuid);
|
||||
@@ -149,7 +168,7 @@ public final class NoSessionSphere {
|
||||
result.cookie = session.getEncryptedUUID();
|
||||
try {
|
||||
result.data = NoSessionSphere.save(result.cookie, password);
|
||||
} catch (NoDashSessionBadUUID e) {
|
||||
} catch (NoDashSessionBadUUIDException e) {
|
||||
throw new NoDashFatalException("Immediately generated cookie throwing bad cookie error.");
|
||||
} catch (NoSessionExpiredException e) {
|
||||
throw new NoDashFatalException("Session expired before it was even returned to client.");
|
||||
|
||||
@@ -1,13 +1,31 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoByteSetBadDecryptionException is triggered when no- is unable to
|
||||
* decrypt a given byte stream.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoByteSetBadDecryptionException extends Exception {
|
||||
private static final long serialVersionUID = -8579497499272656543L;
|
||||
import javax.crypto.BadPaddingException;
|
||||
|
||||
public NoByteSetBadDecryptionException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public class NoByteSetBadDecryptionException extends NoDashException {
|
||||
private static final long serialVersionUID = -8579497499272656543L;
|
||||
|
||||
public NoByteSetBadDecryptionException(Exception e) {
|
||||
super(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,28 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoCannotGetInfluenceException is returned when an action is unable to
|
||||
* render a successful influence for the target, instead returning an
|
||||
* influence to be returned to the sender if possible.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
import nodash.models.NoInfluence;
|
||||
|
||||
public class NoCannotGetInfluenceException extends NoDashException {
|
||||
public class NoCannotGetInfluenceException extends Exception {
|
||||
private static final long serialVersionUID = 4581361079067540974L;
|
||||
|
||||
private NoInfluence returnable;
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoDashException is the base class for no- related exceptions.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoDashException extends Exception {
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoDashFatalException is the base exception for no- related runtime exceptions.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoDashFatalException extends RuntimeException {
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoDashSessionBadUUID extends Exception {
|
||||
private static final long serialVersionUID = -402131397575158344L;
|
||||
|
||||
public NoDashSessionBadUUID() {
|
||||
super();
|
||||
}
|
||||
|
||||
public NoDashSessionBadUUID(Exception e) {
|
||||
super(e);
|
||||
}
|
||||
}
|
||||
32
src/nodash/exceptions/NoDashSessionBadUUIDException.java
Normal file
32
src/nodash/exceptions/NoDashSessionBadUUIDException.java
Normal file
@@ -0,0 +1,32 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoDashSessionBadUUIDException is triggered when the NoSessionSphere is
|
||||
* unable to find a valid session for the provided UUID.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoDashSessionBadUUIDException extends Exception {
|
||||
private static final long serialVersionUID = -402131397575158344L;
|
||||
|
||||
public NoDashSessionBadUUIDException() {
|
||||
super();
|
||||
}
|
||||
|
||||
public NoDashSessionBadUUIDException(Exception e) {
|
||||
super(e);
|
||||
}
|
||||
}
|
||||
@@ -1,13 +0,0 @@
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoDashTemporaryError extends Exception {
|
||||
private static final long serialVersionUID = 7940405670235375662L;
|
||||
|
||||
public NoDashTemporaryError() {
|
||||
super();
|
||||
}
|
||||
|
||||
public NoDashTemporaryError(Exception e) {
|
||||
super(e);
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,23 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoSessionAlreadyAWaitingConfirmationException is triggered when a
|
||||
* save request is attempted for a session, but it is already awaiting
|
||||
* a confirmation upload.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoSessionAlreadyAwaitingConfirmationException extends NoDashException {
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoSessionConfirmedException is triggered when an interaction attempt is
|
||||
* made on a session that has recently been confirmed and thus closed.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoSessionConfirmedException extends NoDashException {
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoSessionExpiredException is thrown when an interaction is attempted with
|
||||
* an expired session.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoSessionExpiredException extends NoDashException {
|
||||
|
||||
@@ -1,3 +1,23 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoSessionNotAwaitingConfirmationException is thrown when an attempt is made
|
||||
* to confirm a session with a password/byte[] combination, but the session is
|
||||
* not currently awaiting a confirmation.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoSessionNotAwaitingConfirmationException extends NoDashException {
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoSessionNotChangedException is thrown when a save is requested for a session
|
||||
* whilst the user object remains unchanged.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoSessionNotChangedException extends NoDashException {
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoUserAlreadyOnlineException is thrown when a login attempt is made for
|
||||
* a user who is currently online.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoUserAlreadyOnlineException extends NoDashException {
|
||||
|
||||
@@ -1,13 +1,24 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoUserNotValidException is thrown when a user file does not hash to a known
|
||||
* hash.
|
||||
*/
|
||||
|
||||
package nodash.exceptions;
|
||||
|
||||
public class NoUserNotValidException extends NoDashException {
|
||||
private static final long serialVersionUID = -6432604940919299965L;
|
||||
|
||||
public NoUserNotValidException(Exception e) {
|
||||
super(e);
|
||||
}
|
||||
|
||||
public NoUserNotValidException() {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoAction is an abstract class to allow for the inheritance of actions which
|
||||
* users can queue before confirmation (user-to-user and user-to-server).
|
||||
*/
|
||||
|
||||
package nodash.models;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoByteSet stores an AES key which has been RSA-4096 encrypted and a data
|
||||
* stream which has been encrypted by this key.
|
||||
*/
|
||||
|
||||
package nodash.models;
|
||||
|
||||
public final class NoByteSet {
|
||||
|
||||
@@ -1,3 +1,26 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoInfluence is an abstract class allowing for the subclassing of user
|
||||
* influences, generated by both actions and the server. Upon login, the user
|
||||
* consumes NoByteSets (generated by .getByteSet()) into the primary NoInfluence,
|
||||
* which is then applied to the user with .applyTo(NoUser).
|
||||
*
|
||||
* Examples include incoming messages, financial changes or charges or updates.
|
||||
*/
|
||||
|
||||
package nodash.models;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
||||
@@ -12,7 +12,7 @@ import nodash.core.NoUtil;
|
||||
import nodash.core.spheres.NoHashSphere;
|
||||
import nodash.exceptions.NoByteSetBadDecryptionException;
|
||||
import nodash.exceptions.NoDashFatalException;
|
||||
import nodash.exceptions.NoDashSessionBadUUID;
|
||||
import nodash.exceptions.NoDashSessionBadUUIDException;
|
||||
import nodash.exceptions.NoSessionConfirmedException;
|
||||
import nodash.exceptions.NoSessionExpiredException;
|
||||
import nodash.exceptions.NoSessionNotAwaitingConfirmationException;
|
||||
@@ -200,13 +200,13 @@ public final class NoSession implements Serializable {
|
||||
}
|
||||
}
|
||||
|
||||
public static UUID decryptUUID(byte[] data) throws NoDashSessionBadUUID {
|
||||
public static UUID decryptUUID(byte[] data) throws NoDashSessionBadUUIDException {
|
||||
try {
|
||||
return UUID.fromString(new String(NoUtil.decrypt(data)));
|
||||
} catch (IllegalBlockSizeException e) {
|
||||
throw new NoDashSessionBadUUID();
|
||||
throw new NoDashSessionBadUUIDException();
|
||||
} catch (BadPaddingException e) {
|
||||
throw new NoDashSessionBadUUID();
|
||||
throw new NoDashSessionBadUUIDException();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,23 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoUser allows the subclassing of custom user objects whilst keeping the
|
||||
* core requirements of a NoUser: the public and private keys. It also supports
|
||||
* the serialization, decryption and NoByteSet consumption.
|
||||
*/
|
||||
|
||||
package nodash.models;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoErrorableAction is a subclassing of NoTargetedAction for user-server
|
||||
* interactions that require an error to be returned if a
|
||||
* NoCannotGetInfluenceException is thrown. The target is not a destination user,
|
||||
* but is instead treated as the source.
|
||||
*
|
||||
* As with all sourced actions it is advised to avoid their use unless the logic
|
||||
* demands it, as it establishes a connection between a server action and a user address.
|
||||
*/
|
||||
|
||||
package nodash.models.noactiontypes;
|
||||
|
||||
import java.security.PublicKey;
|
||||
@@ -10,8 +34,9 @@ import nodash.models.NoInfluence;
|
||||
public abstract class NoErrorableAction extends NoTargetedAction {
|
||||
private static final long serialVersionUID = -6077150774349400823L;
|
||||
|
||||
public NoErrorableAction(PublicKey target) {
|
||||
super(target);
|
||||
public NoErrorableAction(PublicKey source) {
|
||||
// Note that
|
||||
super(source);
|
||||
}
|
||||
|
||||
public void execute() {
|
||||
|
||||
@@ -1,3 +1,27 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoHandshakeAction is a subclass of the NoSourcedAction with logic to
|
||||
* generate an applying influence as well as a returned influence, whilst
|
||||
* also being capable of returned an error influence if the
|
||||
* NoCannotGetInfluenceException is thrown.
|
||||
*
|
||||
* As with all two-way or sourced actions, their use should be sparing as
|
||||
* it establishes a connection between two user addresses.
|
||||
*/
|
||||
|
||||
package nodash.models.noactiontypes;
|
||||
|
||||
import java.security.PublicKey;
|
||||
|
||||
@@ -1,3 +1,26 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoSourcedAction is a subclassing of NoTargetedAction which additionally
|
||||
* has a source, allowing for errors to be returned if a NoCannotGetInfluenceException
|
||||
* is thrown.
|
||||
*
|
||||
* It is not advised to make a habit of using these for all user-user interactions
|
||||
* as they provide a clear link between two users.
|
||||
*/
|
||||
|
||||
package nodash.models.noactiontypes;
|
||||
|
||||
import java.security.PublicKey;
|
||||
|
||||
@@ -1,3 +1,22 @@
|
||||
/*
|
||||
* Copyright 2014 David Horscroft
|
||||
*
|
||||
* Licensed 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.
|
||||
*
|
||||
* NoTargetedAction is an abstract subclassing of NoAction aimed at providing the
|
||||
* basis for an action that has a user target in mind.
|
||||
*/
|
||||
|
||||
package nodash.models.noactiontypes;
|
||||
|
||||
import java.security.PublicKey;
|
||||
|
||||
Reference in New Issue
Block a user