List of usage examples for java.security InvalidKeyException InvalidKeyException
public InvalidKeyException(String message, Throwable cause)
From source file:be.fedict.commons.eid.jca.BeIDSignature.java
@Override protected void engineInitVerify(final PublicKey publicKey) throws InvalidKeyException { LOG.debug("engineInitVerify"); if (null == this.verifySignature) { try {/*from w w w . j a v a 2s .c o m*/ this.verifySignature = Signature.getInstance(this.signatureAlgorithm); } catch (final NoSuchAlgorithmException nsaex) { throw new InvalidKeyException("no such algo: " + nsaex.getMessage(), nsaex); } } this.verifySignature.initVerify(publicKey); }
From source file:com.ntsync.shared.ContactGroup.java
/** * Creates and returns an instance of the RawContact from encrypted data * /*from w w w .ja v a 2s .c o m*/ * */ public static ContactGroup valueOf(String rowId, Map<Byte, ByteBuffer> values, Key privateKey) throws InvalidKeyException { try { String sourceId = null; Long rawId = null; if (values.containsKey(GroupConstants.SERVERROW_ID)) { sourceId = readRawString(values.get(GroupConstants.SERVERROW_ID)); } if (sourceId == null || !sourceId.equals(rowId)) { // If ServerContactId is different, then rowId is the clientId rawId = Long.parseLong(rowId); } if (sourceId == null && rawId < 0) { throw new IllegalArgumentException("Missing RowId in data"); } AEADBlockCipher cipher = CryptoHelper.getCipher(); final boolean deleted = values.containsKey(GroupConstants.DELETED); final String textData = CryptoHelper.decodeStringValue(GroupConstants.TEXTDATA, values, cipher, privateKey); if (textData == null && !deleted) { LOG.error("No textdata found for row with Id:" + rowId); return null; } String title = null; String notes = null; if (!isEmpty(textData)) { JsonFactory fac = new JsonFactory(); JsonParser jp = fac.createParser(textData); jp.nextToken(); while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldname = jp.getCurrentName(); // move to value, or START_OBJECT/START_ARRAY jp.nextToken(); if (GroupConstants.TITLE.equals(fieldname)) { title = jp.getValueAsString(); } else if (GroupConstants.NOTES.equals(fieldname)) { notes = jp.getValueAsString(); } else { LOG.error("Unrecognized field for row with Id:" + rowId + " Fieldname:" + fieldname); } } jp.close(); } String modStr = readRawString(values.get(GroupConstants.MODIFIED)); Date lastModified = null; if (!isEmpty(modStr)) { lastModified = new Date(Long.parseLong(modStr)); } return new ContactGroup(rawId, sourceId, title, notes, deleted, lastModified, -1); } catch (InvalidCipherTextException ex) { throw new InvalidKeyException("Invalid key detected.", ex); } catch (final Exception ex) { LOG.info("Error parsing contactgroup data. Reason:" + ex.toString(), ex); } return null; }
From source file:com.ntsync.android.sync.client.ClientKeyHelper.java
private static byte[] createPwdCheck(SecretKey skey) throws InvalidKeyException, UnsupportedEncodingException { byte[] iv = new byte[IV_LENGTH]; SecureRandom random = new SecureRandom(); random.nextBytes(iv);//from w w w . jav a2 s. c om AEADBlockCipher ecipher = CryptoHelper.getCipher(); byte[] checkData; try { ecipher.init(true, new AEADParameters(new KeyParameter(skey.getEncoded()), CryptoHelper.MAC_SIZE, iv)); // create random integer with checksum (UPC-Format : 12 digits) String testValue = String.format("%011d", random.nextInt(Integer.MAX_VALUE)) + "0"; int res1 = calcUpcChecksum(testValue); testValue = testValue.substring(0, UPC_NR_LEN) + res1; byte[] pwdCheck = CryptoHelper.cipherData(ecipher, testValue.getBytes(SyncDataHelper.DEFAULT_CHARSET_NAME)); checkData = new byte[iv.length + pwdCheck.length]; System.arraycopy(iv, 0, checkData, 0, iv.length); System.arraycopy(pwdCheck, 0, checkData, iv.length, pwdCheck.length); } catch (DataLengthException e) { throw new InvalidKeyException(e.getMessage(), e); } catch (IllegalStateException e) { throw new InvalidKeyException(e.getMessage(), e); } catch (InvalidCipherTextException e) { throw new InvalidKeyException(e.getMessage(), e); } return checkData; }
From source file:com.ntsync.shared.RawContact.java
/** * Creates and returns an instance of the RawContact from encrypted data * //from w w w. jav a 2 s .c o m * */ public static RawContact valueOf(String rowId, Map<Byte, ByteBuffer> values, Key privateKey) throws InvalidKeyException { try { String serverContactId = null; long rawContactId = -1; if (values.containsKey(ContactConstants.SERVERROW_ID)) { serverContactId = readRawString(values.get(ContactConstants.SERVERROW_ID)); } String lastModStr = readRawString(values.get(ContactConstants.MODIFIED)); Date lastModified = null; if (lastModStr != null) { lastModified = new Date(Long.parseLong(lastModStr)); } if (serverContactId == null || !serverContactId.equals(rowId)) { // If ServerContactId is different, then rowId is the clientId rawContactId = Long.parseLong(rowId); } if (serverContactId == null && rawContactId < 0) { throw new IllegalArgumentException("Missing RowId in data"); } AEADBlockCipher cipher = CryptoHelper.getCipher(); final boolean deleted = values.containsKey(ContactConstants.DELETED); final String textData = CryptoHelper.decodeStringValue(ContactConstants.TEXTDATA, values, cipher, privateKey); if (textData == null && !deleted) { LOG.error("No textdata found for row with Id:" + rowId); return null; } String fullName = null; String firstName = null; String lastName = null; String middleName = null; String prefixName = null; String suffixName = null; String phonecticFirst = null; String phonecticMiddle = null; String phonecticLast = null; List<String> groupSourceIds = null; String note = null; List<ListRawData<PhoneType>> phones = null; List<ListRawData<EmailType>> emails = null; List<ListRawData<WebsiteType>> websites = null; List<ListRawData<EventType>> events = null; List<ListRawData<RelationType>> relations = null; List<ListRawData<SipAddressType>> sipaddresses = null; List<ListRawData<NicknameType>> nicknames = null; List<RawAddressData> addresses = null; List<RawImData> imAddresses = null; RawOrganizationData organization = null; boolean photoSuperPrimary = false; boolean starred = false; String customRingtone = null; boolean sendToVoiceMail = false; if (!SyncDataHelper.isEmpty(textData)) { JsonFactory fac = new JsonFactory(); JsonParser jp = fac.createParser(textData); jp.nextToken(); while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldname = jp.getCurrentName(); // move to value, or START_OBJECT/START_ARRAY jp.nextToken(); if (ContactConstants.STRUCTUREDNAME.equals(fieldname)) { while (jp.nextToken() != JsonToken.END_OBJECT) { String namefield = jp.getCurrentName(); // move to value if (jp.nextToken() == null) { throw new JsonParseException("Invalid JSON-Structure. End of Object missing.", jp.getCurrentLocation()); } if (ContactConstants.DISPLAY_NAME.equals(namefield)) { fullName = jp.getValueAsString(); } else if (ContactConstants.FAMILY_NAME.equals(namefield)) { lastName = jp.getValueAsString(); } else if (ContactConstants.GIVEN_NAME.equals(namefield)) { firstName = jp.getValueAsString(); } else if (ContactConstants.MIDDLE_NAME.equals(namefield)) { middleName = jp.getValueAsString(); } else if (ContactConstants.SUFFIX_NAME.equals(namefield)) { suffixName = jp.getValueAsString(); } else if (ContactConstants.PREFIX_NAME.equals(namefield)) { prefixName = jp.getValueAsString(); } else if (ContactConstants.PHONETIC_FAMILY.equals(namefield)) { phonecticLast = jp.getValueAsString(); } else if (ContactConstants.PHONETIC_GIVEN.equals(namefield)) { phonecticFirst = jp.getValueAsString(); } else if (ContactConstants.PHONETIC_MIDDLE.equals(namefield)) { phonecticMiddle = jp.getValueAsString(); } else { LOG.error("Unrecognized structurednamefield for row with Id:" + rowId + " Fieldname:" + fieldname); break; } } } else if (ContactConstants.STRUCTUREDPOSTAL.equals(fieldname)) { addresses = readAddressList(rowId, addresses, jp); } else if (ContactConstants.PHONE.equals(fieldname)) { phones = readJsonList(rowId, phones, jp, fieldname, PhoneType.TYPE_OTHER, PhoneType.class); } else if (ContactConstants.EMAIL.equals(fieldname)) { emails = readJsonList(rowId, emails, jp, fieldname, EmailType.TYPE_OTHER, EmailType.class); } else if (ContactConstants.WEBSITE.equals(fieldname)) { websites = readJsonList(rowId, websites, jp, fieldname, WebsiteType.TYPE_OTHER, WebsiteType.class); } else if (ContactConstants.EVENT.equals(fieldname)) { events = readJsonList(rowId, events, jp, fieldname, EventType.TYPE_OTHER, EventType.class); } else if (ContactConstants.RELATION.equals(fieldname)) { relations = readJsonList(rowId, relations, jp, fieldname, RelationType.TYPE_CUSTOM, RelationType.class); } else if (ContactConstants.SIPADDRESS.equals(fieldname)) { sipaddresses = readJsonList(rowId, sipaddresses, jp, fieldname, SipAddressType.TYPE_OTHER, SipAddressType.class); } else if (ContactConstants.NICKNAME.equals(fieldname)) { nicknames = readJsonList(rowId, nicknames, jp, fieldname, NicknameType.TYPE_DEFAULT, NicknameType.class); } else if (ContactConstants.IM.equals(fieldname)) { imAddresses = readImList(rowId, imAddresses, jp); } else if (ContactConstants.NOTE.equals(fieldname)) { note = jp.getValueAsString(); } else if (ContactConstants.GROUPMEMBERSHIP.equals(fieldname)) { while (jp.nextToken() != JsonToken.END_ARRAY) { String groupSourceId = jp.getValueAsString(); if (groupSourceIds == null) { groupSourceIds = new ArrayList<String>(); } groupSourceIds.add(groupSourceId); } } else if (ContactConstants.ORGANIZATION.equals(fieldname)) { organization = readOrg(rowId, jp); } else if (ContactConstants.PHOTO_SUPERPRIMARY.equals(fieldname)) { photoSuperPrimary = jp.getValueAsBoolean(); } else if (ContactConstants.STARRED.equals(fieldname)) { starred = jp.getValueAsBoolean(); } else if (ContactConstants.SEND_TO_VOICE_MAIL.equals(fieldname)) { sendToVoiceMail = jp.getValueAsBoolean(); } else if (ContactConstants.DROID_CUSTOM_RINGTONE.equals(fieldname)) { customRingtone = jp.getValueAsString(); } else { LOG.error("Unrecognized field for row with Id:" + rowId + " Fieldname:" + fieldname); } } jp.close(); } final byte[] photo = CryptoHelper.decodeValue(ContactConstants.PHOTO, values, cipher, privateKey); return new RawContact(fullName, firstName, lastName, middleName, prefixName, suffixName, phonecticFirst, phonecticMiddle, phonecticLast, phones, emails, websites, addresses, events, relations, sipaddresses, nicknames, imAddresses, note, organization, photo, photoSuperPrimary, groupSourceIds, null, starred, customRingtone, sendToVoiceMail, lastModified, deleted, serverContactId, rawContactId, false, -1); } catch (InvalidCipherTextException ex) { throw new InvalidKeyException("Invalid key detected.", ex); } catch (final IOException ex) { LOG.info("Error parsing contact data. Reason:" + ex.toString(), ex); } catch (IllegalArgumentException ex) { LOG.warn("Error parsing contact data. Reason:" + ex.toString(), ex); } return null; }