package com.socioboard.t_board_pro.twitterapi; import java.net.URLEncoder; import java.security.Key; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; public class OAuthSignaturesGenerator2 { public static final String ENCODING = "UTF-8"; public static final String VERSION_1_0 = "1.0"; public static final String FORM_ENCODED = "application/x-www-form-urlencoded"; public static final String OAUTH_CONSUMER_KEY = "oauth_consumer_key"; public static final String OAUTH_TOKEN = "oauth_token"; public static final String OAUTH_TOKEN_SECRET = "oauth_token_secret"; public static final String OAUTH_SIGNATURE_METHOD = "oauth_signature_method"; public static final String OAUTH_SIGNATURE = "oauth_signature"; public static final String OAUTH_TIMESTAMP = "oauth_timestamp"; public static final String OAUTH_NONCE = "oauth_nonce"; public static final String OAUTH_VERSION = "oauth_version"; public static final String OAUTH_CALLBACK = "oauth_callback"; public static final String OAUTH_CALLBACK_CONFIRMED = "oauth_callback_confirmed"; public static final String OAUTH_VERIFIER = "oauth_verifier"; public static final String HMAC_SHA1 = "HMAC-SHA1"; public static final String RSA_SHA1 = "RSA-SHA1"; public String accesToken; public String tokenSecret; public String cKey,cSecret; public String url,method; public String currentTimeStamp,currentOnonce; public OAuthSignaturesGenerator2(String accesToken, String tokenSecret, String cKey,String cSecret, String method) { super(); this.accesToken = accesToken; this.tokenSecret = tokenSecret; this.cKey = cKey; this.method = method; this.cSecret = cSecret; } public String getOauthSignature(){ String oAuthSignature = null; // * * * 1 * * * * String GeneratedPerams = gentratedPerams(); // * * * 2 * * * * String baseString = generateBaseString(GeneratedPerams); // * * * 3 * * * * String singningKey = genrateSigningKey(); // * * * 4 * * * * oAuthSignature = getCalcShaHash(baseString, singningKey); // * * * Done * * * * return oAuthSignature; } String gentratedPerams(){ String GeneratedPerams = null; GeneratedPerams = OAUTH_CONSUMER_KEY +"=" + URLEncoder.encode(getcKey() ) +"&" + OAUTH_NONCE +"=" + URLEncoder.encode(currentOnonce ) +"&" + OAUTH_SIGNATURE_METHOD +"=" + URLEncoder.encode(HMAC_SHA1 ) +"&" + OAUTH_TIMESTAMP +"=" + URLEncoder.encode(currentTimeStamp ) +"&" + OAUTH_TOKEN +"=" + URLEncoder.encode(getAccesToken() ) +"&" + OAUTH_VERSION +"=" + URLEncoder.encode(VERSION_1_0 ); //System.out.println("GeneratedPerams = "+ GeneratedPerams); return GeneratedPerams; } String generateBaseString(String peramsUrl) { String baseString = null; //System.out.println("URLEncoder.encode("+url+") = "+ URLEncoder.encode(url )); baseString = method+"&"+URLEncoder.encode(url )+"&"+URLEncoder.encode(peramsUrl ); //System.out.println("baseString = "+ baseString); return baseString; } String genrateSigningKey(){ String singningKey = null; singningKey = URLEncoder.encode(cSecret )+"&"+URLEncoder.encode(tokenSecret ); //System.out.println("genrateSigningKey = "+ singningKey); return singningKey; } public String getAccesToken() { return accesToken; } public void setAccesToken(String accesToken) { this.accesToken = accesToken; } public String getAcessSecret() { return tokenSecret; } public void setAcessSecret(String tokenSecret) { this.tokenSecret = tokenSecret; } public String getcKey() { return cKey; } public void setcKey(String cKey) { this.cKey = cKey; } public String getUrl() { return url; } public void setUrl(String url) { currentTimeStamp = calcTstamp(); currentOnonce = calcOnonce(); this.url = url; } public String calcTstamp() { return new String("" + System.currentTimeMillis() / 1000); } public String calcOnonce() { String oNonce = new String("" + (System.currentTimeMillis())/ 1000*55); System.out.println("getOnonce = "+ oNonce); return oNonce; } public String getCalcShaHash (String data, String key) { String oAuthSignature = null; try { Key signingKey = new SecretKeySpec(key.getBytes(), HMAC_SHA1); Mac mac = Mac.getInstance(HMAC_SHA1); mac.init(signingKey); byte[] rawHmac = mac.doFinal(data.getBytes()); // Done String noUrlEncoding = Base64.encodeBytes(rawHmac); // Dircet oAuthSignature = noUrlEncoding; // perencoded // oAuthSignature = URLEncoder.encode(noUrlEncoding,"ISO-8859-1"); //System.out.println("getCalcShaHash = "+ oAuthSignature); } catch (Exception e) { e.printStackTrace(); System.out.println("Exception = "+ e); } return oAuthSignature; } }