List of usage examples for org.bouncycastle.util Strings toUTF8ByteArray
public static byte[] toUTF8ByteArray(char[] string)
From source file:net.sportics.dni.rt.client.microedition.net.SrtsApi.java
License:Open Source License
final String encodePassword(final String sid, final String password) { try {/*from w ww . ja v a 2 s . c o m*/ final Digest digester = new SHA256Digest(); final byte[] asArray = Strings.toUTF8ByteArray(password); digester.update(asArray, 0, asArray.length); final int length = digester.getDigestSize(); final byte[] digest = new byte[length]; digester.doFinal(digest, 0); final byte[] hex = Hex.encode(digest); final String hexString = new String(hex, USASCII_ENC); final String auth = sid + ":" + hexString; LOG.debug("pwd as auth: " + auth); final byte[] asBytes = auth.getBytes(USASCII_ENC); final byte[] base64 = Base64.encode(asBytes); final String base64String = new String(base64, USASCII_ENC); LOG.debug("auth as base64: " + base64String); return base64String; } catch (final UnsupportedEncodingException e) { throw new RuntimeException("Unsupported encoding US-ASCII"); } }
From source file:org.sufficientlysecure.keychain.linked.UriAttribute.java
License:Open Source License
public byte[] getEncoded() { return Strings.toUTF8ByteArray(mUri.toASCIIString()); }
From source file:org.sufficientlysecure.keychain.pgp.UncachedKeyringCanonicalizeTest.java
License:Open Source License
@Test public void testUidSignature() throws Exception { UncachedPublicKey masterKey = ring.getPublicKey(); final WrappedSignature sig = masterKey.getSignaturesForRawId(Strings.toUTF8ByteArray("twi")).next(); byte[] raw = sig.getEncoded(); // destroy the signature raw[raw.length - 5] += 1;//from w w w . java2 s . com final WrappedSignature brokenSig = WrappedSignature.fromBytes(raw); { // bad certificates get stripped UncachedKeyRing modified = KeyringTestingHelper.injectPacket(ring, brokenSig.getEncoded(), 3); CanonicalizedKeyRing canonicalized = modified.canonicalize(log, 0); Assert.assertTrue("canonicalized keyring with invalid extra sig must be same as original one", !KeyringTestingHelper.diffKeyrings(ring.getEncoded(), canonicalized.getEncoded(), onlyA, onlyB)); } // remove user id certificate for one user final UncachedKeyRing base = KeyringTestingHelper.removePacket(ring, 2); { // user id without certificate should be removed CanonicalizedKeyRing modified = base.canonicalize(log, 0); Assert.assertTrue("canonicalized keyring must differ", KeyringTestingHelper.diffKeyrings(ring.getEncoded(), modified.getEncoded(), onlyA, onlyB)); Assert.assertEquals("two packets should be stripped after canonicalization", 2, onlyA.size()); Assert.assertEquals("no new packets after canonicalization", 0, onlyB.size()); Packet p = new BCPGInputStream(new ByteArrayInputStream(onlyA.get(0).buf)).readPacket(); Assert.assertTrue("first stripped packet must be user id", p instanceof UserIDPacket); Assert.assertEquals("missing user id must be the expected one", "twi", ((UserIDPacket) p).getID()); Assert.assertArrayEquals("second stripped packet must be signature we removed", sig.getEncoded(), onlyA.get(1).buf); } { // add error to signature UncachedKeyRing modified = KeyringTestingHelper.injectPacket(base, brokenSig.getEncoded(), 3); CanonicalizedKeyRing canonicalized = modified.canonicalize(log, 0); Assert.assertTrue("canonicalized keyring must differ", KeyringTestingHelper.diffKeyrings(ring.getEncoded(), canonicalized.getEncoded(), onlyA, onlyB)); Assert.assertEquals("two packets should be missing after canonicalization", 2, onlyA.size()); Assert.assertEquals("no new packets after canonicalization", 0, onlyB.size()); Packet p = new BCPGInputStream(new ByteArrayInputStream(onlyA.get(0).buf)).readPacket(); Assert.assertTrue("first stripped packet must be user id", p instanceof UserIDPacket); Assert.assertEquals("missing user id must be the expected one", "twi", ((UserIDPacket) p).getID()); Assert.assertArrayEquals("second stripped packet must be signature we removed", sig.getEncoded(), onlyA.get(1).buf); } }
From source file:org.sufficientlysecure.keychain.pgp.UncachedKeyringMergeTest.java
License:Open Source License
@Test public void testAddedUserIdSignature() throws Exception { final UncachedKeyRing pubRing = ringA.extractPublicKeyRing(); final UncachedKeyRing modified; {//ww w. j a v a2 s . c o m CanonicalizedPublicKeyRing publicRing = new CanonicalizedPublicKeyRing(pubRing.getEncoded(), 0); CanonicalizedSecretKey secretKey = new CanonicalizedSecretKeyRing(ringB.getEncoded(), false, 0) .getSecretKey(); secretKey.unlock(new Passphrase()); PgpCertifyOperation op = new PgpCertifyOperation(); CertifyAction action = new CertifyAction(pubRing.getMasterKeyId(), publicRing.getPublicKey().getUnorderedUserIds(), null); // sign all user ids PgpCertifyResult result = op.certify(secretKey, publicRing, new OperationLog(), 0, action, null, new Date()); Assert.assertTrue("certification must succeed", result.success()); Assert.assertNotNull("certification must yield result", result.getCertifiedRing()); modified = result.getCertifiedRing(); } { UncachedKeyRing merged = ringA.merge(modified, log, 0); Assert.assertNotNull("merge must succeed", merged); Assert.assertArrayEquals("foreign signatures should not be merged into secret key", ringA.getEncoded(), merged.getEncoded()); } { byte[] sig = KeyringTestingHelper .getNth(modified.getPublicKey().getSignaturesForRawId(Strings.toUTF8ByteArray("twi")), 1) .getEncoded(); // inject the (foreign!) signature into subkey signature position UncachedKeyRing moreModified = KeyringTestingHelper.injectPacket(modified, sig, 1); UncachedKeyRing merged = ringA.merge(moreModified, log, 0); Assert.assertNotNull("merge must succeed", merged); Assert.assertArrayEquals("foreign signatures should not be merged into secret key", ringA.getEncoded(), merged.getEncoded()); merged = pubRing.merge(moreModified, log, 0); Assert.assertNotNull("merge must succeed", merged); Assert.assertTrue("merged keyring should contain new signature", KeyringTestingHelper.diffKeyrings(pubRing.getEncoded(), merged.getEncoded(), onlyA, onlyB)); Assert.assertEquals("merged keyring should be missing no packets", 0, onlyA.size()); Assert.assertEquals("merged keyring should contain exactly two more packets", 2, onlyB.size()); Assert.assertEquals("first added packet should be a signature", PacketTags.SIGNATURE, onlyB.get(0).tag); Assert.assertEquals("first added packet should be in the position we injected it at", 1, onlyB.get(0).position); Assert.assertEquals("second added packet should be a signature", PacketTags.SIGNATURE, onlyB.get(1).tag); } { UncachedKeyRing merged = pubRing.merge(modified, log, 0); Assert.assertNotNull("merge must succeed", merged); Assert.assertFalse("merging keyring with extra signatures into its base should yield that same keyring", KeyringTestingHelper.diffKeyrings(merged.getEncoded(), modified.getEncoded(), onlyA, onlyB)); } }