import boto3
ddbclient = boto3.client('dynamodb')
response = ddbclient.query( TableName='generic', KeyConditions={'pk': { 'AttributeValueList': [  {  'S': 'stocks-bob' } ],'ComparisonOperator': 'EQ'},'sk': { 'AttributeValueList': [  {  'S': 'stocks-' } ],'ComparisonOperator': 'BEGINS_WITH' }}
 )


import urllib.request
url = ''
headers = {}
headers['User-Agent'] = "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.27 Safari/537.17"
req = urllib.request.Request(url, headers = headers)
resp = urllib.request.urlopen(req)
respData = resp.read()


def left(s, amount):
    return s[:amount]
def right(s, amount):
    return s[-amount:]
def mid(s, offset, amount):
    return s[offset:offset+amount]

data = respData.decode("utf-8") 
matchstringstart = 'phApp.ddo = '
matchstringend = '; phApp.sessionParams ='
intstart = 0
intstop = 0
myjson = ""
for i in range(len(str(data))):
    if (mid(data, i, len(matchstringstart)) == matchstringstart):
        intstart = i
for i in range(len(str(data))):
    if (mid(data, i, len(matchstringend)) == matchstringend):
        intstop = i
myjson = mid(data, intstart + len(matchstringstart), intstop - (intstart + ((len(matchstringend) - len(matchstringstart) + 1 ))))
data = json.loads(myjson)

 
params = []
    
params.append('oauth_consumer_key=' + event['key'])
    
params.append('oauth_nonce=' + nonce)
    
params.append('oauth_signature_method=HMAC-SHA1')
    
params.append('oauth_timestamp=' + timestamp)
    
params.append('oauth_version=1.0')
data= ''.join([str(params[i]) for i in range(2,len(params)])



import json
import jwt
from cryptography.hazmat.primitives import serialization

def lambda_handler(event, context):
	testFunc()
	return ''
    
def testFunc():
	#example private key
	private_key = 'MIICXAIBAAKBgQCqrZrzCY1oTEQJW6vUJ3p9DgBm3OBnWGIeeNEqft6woiSymwNdHxfQsZrfLOfnwxdWkPIHkYTshHYQQzWXba8D578O41OPJhC+juISrlYtNBQKru/nAT1NfPceyBHKb2/Pt2firFR3IAmJFMBmIc13+pElZlkxwsVZ/g6Zg/BWswIDAQABAoGATVeyOaQAglzdD+iMquzg4r5vjC1XOz2f6PMSxdEMFLrFKnJ4ScCHSDjTV4K/7BRKBR5VrvxQYeV8os3yARbhEYQZYVhf+2mN/3Zk/Og6uSiEnzXYn5ZcyHN9OXZ8maSBDVDA8FFFnXZ69FOBD90/mECboMXMcZjzOBAbuEL/SyECQQDfiacMy9COgXYqoOCDrnBpTovs8s5XmxbVmnK+ZuS4GoTn9Cgu1nBQ8A+F7Wcz0jCiKyPahYF8LoWAf010qZVpAkEAw3bR3hHtOxaXrQ5lIq0avZWn5/hlBz6tvzDW1JoEnktdCPItHlyBWgSA952S5lThYoln0fMa/3dboAZa2Hk7uwJAFiyMcpuBK7Gx7BabTtSt9/Q/sxh+2Xfb8wJoIXUJeS3AQ1YX6lWBPLYjhBCBrUVLZ7rJyrJ1nsDqo019fHYaCQJAL6wbI35bzb2E4MBSClMN4o9NlFYQzeOLnMXcn52w4qqe1j+6oV0Ob1YJ3lqgKW0qS04X9CzGuOfzgOQL5CAtYQJBAMZN6eBWkMehwMlywL0Xk+j8WmRcduJ0Z+GdPkhVu9LAMCNOIVqoAVIRU/Pi1GEuOIwYsi6HAsNNs8hk3VA5MwY='
	key = '-----BEGIN RSA PRIVATE KEY-----\n' + private_key + '\n-----END RSA PRIVATE KEY-----'
	key_binary = key.encode('ascii')
	claim = {'test': "hello"}
	token = jwt.encode(    claim,    key_binary,    algorithm='RS256')
	#print(token)

	public_key = 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCqrZrzCY1oTEQJW6vUJ3p9DgBm3OBnWGIeeNEqft6woiSymwNdHxfQsZrfLOfnwxdWkPIHkYTshHYQQzWXba8D578O41OPJhC+juISrlYtNBQKru/nAT1NfPceyBHKb2/Pt2firFR3IAmJFMBmIc13+pElZlkxwsVZ/g6Zg/BWswIDAQAB'
	
	key = '-----BEGIN PUBLIC KEY-----\n' + public_key + '\n-----END PUBLIC KEY-----'
	key_binary = key.encode('ascii')
	test = jwt.decode(token, key_binary, algorithms=['RS256'])
	#print(test)
	jwk = '{"alg":"RS256","e":"AQAB","kid":"ghST85B6RZr2ruVrZ3Jmtub1dsyUdit00hq3VaNKB1I=","kty":"RSA","n":"iGeC3uMFOPxsgWfj-Lli0fWICOCxjXHgpkb7ASvg-O7p0pUVKif6PZeriPUzJdiyHep0Hpe3qSYcBFQtW2IDpewKrSImgDBVNnYj7reEqzVkY7Yggd5gTblLmWapOqENKT3jpg90qGg-e6M9tHQviRfko3RIH53KjPqGtqrgF2kyDuKNiSTeBd4YMUPV7Rk9dikLDADMNvlJdvwhHuuNWSXbLjIKRqmvyQGcqHLdvjr-m4zBfsCKEaJ1-pB3d-WM8U2kd8ao5fjdXTxLvISsjHll7EoeUGGmei9h6B2kAHJLXKMFFPk0G4miraSRAstdYq0SOzTId0tGUfAll9quaQ","use":"sig"}'
	#public_key = jwt.algorithms.RSAAlgorithm.from_jwk(json.dumps(key_dict))
	public_key = jwt.algorithms.RSAAlgorithm.from_jwk(jwk)
	
	pem = public_key.public_bytes(encoding=serialization.Encoding.PEM,format=serialization.PublicFormat.SubjectPublicKeyInfo)
	#print(pem.splitlines()[1])
	print(pem)


#i think this is right for post
#import urllib.parse as parse
        
#dctParams = parse.parse_qs(event['body'])
        
#job = dctParams['job'][0]

#this is right for get with querystring        
job = event['queryStringParameters']['job']


import json
import base64
import gzip
import boto3
client = boto3.client('sns')

def mid(s, offset, amount):
    return s[offset:offset+amount]

def lambda_handler(event, context):
    zipdata = base64.b64decode(event['awslogs']['data'])
    logbytes = gzip.decompress(zipdata)
    data = logbytes.decode("utf-8")
    matchstring = 'String to match'
    for i in range(len(str(data))):
        if (mid(data, i, len(matchstring)) == matchstring):
            response = client.publish(PhoneNumber='+11111111111',Message='Match Found',Subject='MatchFound',MessageStructure='string')
    return ''


import json
import paho
import boto3
import paho.mqtt.client as mqtt
import ssl
import time
import os
import datetime
endpoint = os.environ['iotendpoint']

ssmClient = boto3.client('ssm')
iotca = ssmClient.get_parameter(Name='iotrootca',WithDecryption=False)
file = open('/tmp/root.ca.pem','w')
file.write(iotca['Parameter']['Value'])
file.close() 
iotcert = ssmClient.get_parameter(Name='iotcert',WithDecryption=False)
file = open('/tmp/certificate.ca.crt','w')
file.write(iotcert['Parameter']['Value'])
file.close() 
iotkey = ssmClient.get_parameter(Name='iotkey',WithDecryption=True)
file = open('/tmp/private.pem.key','w')
file.write(iotkey['Parameter']['Value'])
file.close() 

def lambda_handler(event, context):
    client = mqtt.Client()
    ssl_context = ssl.create_default_context()
    ssl_context.set_alpn_protocols(['x-amzn-mqtt-ca'])
    ssl_context.load_verify_locations(cafile='/tmp/root.ca.pem')
    ssl_context.load_cert_chain(certfile='/tmp/certificate.ca.crt', keyfile='/tmp/private.pem.key')
    client.tls_set_context(context=ssl_context)
    client.connect(endpoint, 443, 60)
    client.loop_start()
    while True:
        now = datetime.datetime.now()
        client.publish('hello/world', '{"Current Time":"' + str(now) + '"}')
        time.sleep(5)



import json
import base64
import boto3
from requests_toolbelt.multipart import decoder

s3client = boto3.client("s3")
def lambda_handler(event, context):
    content_type_header = event['headers']['content-type']
    postdata = base64.b64decode(event['body']).decode('iso-8859-1')
    imgInput = ''
    lst = []
    for part in decoder.MultipartDecoder(postdata.encode('utf-8'), content_type_header).parts:
        lst.append(part.text)

    response = s3client.put_object(  Body=lst[0].encode('iso-8859-1'),  Bucket='test',    Key='mypicturefinal.jpg')
    return {'statusCode': '200','body': 'Success', 'headers': { 'Content-Type': 'text/html' }}