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' }}