package net.londatiga.android.twitter.oauth; import java.security.MessageDigest; import java.security.SecureRandom; /** * Oauth utils. * * @author Lorensius W. L. T <lorenz@londatiga.net> * */ public class OauthUtil { public static final String SIGNATURE_METHOD = "HMAC-SHA1"; public static final String OAUTH_VERSION = "1.0"; public static final String OAUTH_VERIFIER = "oauth_verifier"; public static final String OAUTH_CALLBACK_CONFIRMED = "oauth_callback_confirmed"; public static final String OAUTH_TOKEN = "oauth_token"; public static final String OAUTH_TOKEN_SECRET = "oauth_token_secret"; public static final String USER_ID = "user_id"; public static final String SCREEN_NAME = "screen_name"; public static final String OAUTH_REQUEST_URL = "https://api.twitter.com/oauth/request_token"; public static final String OAUTH_AUTHENTICATION_URL = "https://api.twitter.com/oauth/authenticate"; public static final String OAUTH_AUTHORIZATION_URL = "https://api.twitter.com/oauth/authorize"; public static final String OAUTH_ACCESSTOKEN_URL = "https://api.twitter.com/oauth/access_token"; public static String createNonce() { String nonce = ""; try { SecureRandom prng = SecureRandom.getInstance("SHA1PRNG"); String randomNum = String.valueOf(prng.nextInt()); MessageDigest sha = MessageDigest.getInstance("SHA-1"); byte[] result = sha.digest( randomNum.getBytes() ); nonce = OauthUtil.hexEncode(result); } catch (Exception e) { } return nonce; } public static String hexEncode( byte[] aInput){ StringBuilder result = new StringBuilder(); char[] digits = {'0', '1', '2', '3', '4','5','6','7','8','9','a','b','c','d','e','f'}; for ( int idx = 0; idx < aInput.length; ++idx) { byte b = aInput[idx]; result.append( digits[ (b&0xf0) >> 4 ] ); result.append( digits[ b&0x0f] ); } return result.toString(); } public static String getTimeStamp() { return String.valueOf(System.currentTimeMillis()/1000); } }