Skip to content

Commit

Permalink
Merge branch 'master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
d-Rickyy-b committed Oct 3, 2019
2 parents 15e9027 + 0555d02 commit 67bda70
Show file tree
Hide file tree
Showing 3 changed files with 51 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 @@ -13,6 +13,7 @@
from .wordanalyzer import WordAnalyzer
from .ibananalyzer import IBANAnalyzer
from .dbconnstringanalyzer import DBConnAnalyzer
from .privatekeyanalyzer import PrivateKeyAnalyzer

__all__ = (
'AlwaysTrueAnalyzer',
Expand All @@ -29,4 +30,5 @@
'WordAnalyzer',
'IBANAnalyzer',
'DBConnAnalyzer'
'PrivateKeyAnalyzer'
)
11 changes: 11 additions & 0 deletions pastepwn/analyzers/privatekeyanalyzer.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# -*- coding: utf-8 -*-
from .regexanalyzer import RegexAnalyzer


class PrivateKeyAnalyzer(RegexAnalyzer):
"""Analyzer to match private keys beginnigs via regex"""
name = "PrivateKeyAnalyzer"

def __init__(self, actions):
regex = r"\-\-\-\-\-BEGIN( [A-Z]+)? PRIVATE KEY( BLOCK)?\-\-\-\-\-"
super().__init__(actions, regex)
38 changes: 38 additions & 0 deletions pastepwn/analyzers/tests/privatekeyanalyzer_test.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
import unittest
from unittest import mock

from pastepwn.analyzers.privatekeyanalyzer import PrivateKeyAnalyzer


class TestMailAnalyzer(unittest.TestCase):
def setUp(self):
self.analyzer = PrivateKeyAnalyzer(None)
self.paste = mock.Mock()

def test_match_positive(self):
"""Test if positives are recognized"""
self.paste.body = "-----BEGIN PRIVATE KEY-----"
self.assertTrue(self.analyzer.match(self.paste))
self.paste.body = "-----BEGIN PGP PRIVATE KEY BLOCK-----"
self.assertTrue(self.analyzer.match(self.paste))
self.paste.body = "-----BEGIN RSA PRIVATE KEY-----"
self.assertTrue(self.analyzer.match(self.paste))
self.paste.body = "-----BEGIN ENCRYPTED PRIVATE KEY-----"
self.assertTrue(self.analyzer.match(self.paste))
self.paste.body = "-----BEGIN OPENSSH PRIVATE KEY-----"
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))
self.paste.body = "-----BEGIN PUBLIC KEY-----"
self.assertFalse(self.analyzer.match(self.paste))


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

0 comments on commit 67bda70

Please sign in to comment.