Skip to content

Commit

Permalink
Merge 1434166 into 9fb1090
Browse files Browse the repository at this point in the history
  • Loading branch information
grimmjow8 committed Oct 14, 2019
2 parents 9fb1090 + 1434166 commit 805c22a
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 0 deletions.
2 changes: 2 additions & 0 deletions pastepwn/analyzers/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from .emailpasswordpairanalyzer import EmailPasswordPairAnalyzer
from .facebookaccesstokenanalyzer import FacebookAccessTokenAnalyzer
from .genericanalyzer import GenericAnalyzer
from .googleapikeyanalyzer import GoogleApiKeyAnalyzer
from .googleoauthkeyanalyzer import GoogleOAuthKeyAnalyzer
from .ibananalyzer import IBANAnalyzer
from .logicalanalyzers import AndAnalyzer
Expand Down Expand Up @@ -55,6 +56,7 @@
'EmailPasswordPairAnalyzer',
'FacebookAccessTokenAnalyzer',
'GenericAnalyzer',
'GoogleApiKeyAnalyzer',
'GoogleOAuthKeyAnalyzer',
'IBANAnalyzer',
'LogicalBaseAnalyzer',
Expand Down
10 changes: 10 additions & 0 deletions pastepwn/analyzers/googleapikeyanalyzer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# -*- coding: utf-8 -*-
from .regexanalyzer import RegexAnalyzer


class GoogleApiKeyAnalyzer(RegexAnalyzer):

def __init__(self, actions):
# https://cloud.google.com/docs/authentication/api-keys
regex = r"^AIza[0-9A-Za-z_-]{35}$"
super().__init__(actions, regex)
57 changes: 57 additions & 0 deletions pastepwn/analyzers/tests/googleapikeyanalyzer_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# -*- coding: utf-8 -*-
import unittest
from unittest import mock

from pastepwn.analyzers.googleapikeyanalyzer import GoogleApiKeyAnalyzer


class TestGoogleApiKeyAnalyzer(unittest.TestCase):

def setUp(self):
self.analyzer = GoogleApiKeyAnalyzer(None)
self.paste = mock.Mock()

def test_match_positive(self):
"""Test if positives are recognized"""
# google key dump
self.paste.body = "AIzaSyCTmst6SvsOAQanZKNt-2pt6nuLoFf2kSA"
self.assertTrue(self.analyzer.match(self.paste))

# google key dump
self.paste.body = "AIzaSyBKNst9JE89f4lHuNXQFTUgZKh8VZpvR6M"
self.assertTrue(self.analyzer.match(self.paste))

# google key dump
self.paste.body = "AIzammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
self.assertTrue(self.analyzer.match(self.paste))

# google key dump
self.paste.body = "AIza00000000000000000000000000000000000"
self.assertTrue(self.analyzer.match(self.paste))

def test_match_negative(self):
"""Test if negatives are not recognized"""
self.paste.body = ""
self.assertFalse(self.analyzer.match(self.paste))

self.paste.body = None
self.assertFalse(self.analyzer.match(self.paste))

# Invalid start
self.paste.body = "aiza00000000000000000000000000000000000"
self.assertFalse(self.analyzer.match(self.paste))

# Invalid start
self.paste.body = "000000000000000000000000000000000000000"
self.assertFalse(self.analyzer.match(self.paste))

# Invalid length
self.paste.body = "AIzammmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
self.assertFalse(self.analyzer.match(self.paste))

# Invalid length
self.paste.body = "AIzammmmmmmmm"
self.assertFalse(self.analyzer.match(self.paste))

if __name__ == '__main__':
unittest.main()

0 comments on commit 805c22a

Please sign in to comment.