GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Net::Google::SafeBrowsing2::Storage(3) User Contributed Perl Documentation Net::Google::SafeBrowsing2::Storage(3)

Net::Google::SafeBrowsing2::Storage - Base class for storing the Google Safe Browsing v2 database

  package Net::Google::SafeBrowsing2::Sqlite;

  use base 'Net::Google::SafeBrowsing2::Storage';

This is the base class for implementing a storage mechanism for the Google Safe Browsing v2 database. See Net::Google::SafeBrowsing2::Sqlite for an example of implementation.

This module cannot be used on its own as it does not actually store anything. All methods should redefined. Check the code to see which arguments are used, and what should be returned.

  Create a Net::Google::SafeBrowsing2::Storage object

  my $storage   => Net::Google::SafeBrowsing2::Storage->new();

Add chunk information to the local database

  $storage->add_chunks(type => 'a', chunknum => 2154, chunks => [{host => HEX, prefix => ''}], list => 'goog-malware-shavar');

Does not return anything.

Arguments

type
Required. Type of chunk: 'a' (add chunk) or 's' (sub chunk).
chunknum
Required. Chunk number.
chunks
Required. Array of chunks

For add chunks, each element of the array is an hash reference in the following format:

  {
    host => HEX,
        prefix => HEX
  }
    

For sub chunks, each element of the array is an hash reference in the following format:

  {
    host => HEX,
        prefix => HEX,
    add_chunknum => INTEGER
  }
    
list
Required. Google Safe Browsing list name.

Returns a list of chunks for a given host key for all lists.

        my @chunks = $storage->get_add_chunks(hostkey => HEX);

Arguments

hostkey.
Required. Host key.

Return value

Array of add chunks in the same format as described above:

    (
                { 
                        chunknum        => 25121,
                        hostkey         => hex('12345678'),
                        prefix          => '',
                        list            => 'goog-malware-shavar'
                },
                { 
                        chunknum        => '25121',
                        hostkey         => hex('12345678'),
                        prefix          => hex('2fc96b9f'),
                        list            => 'goog-malware-shavar'
                },
        );

Returns a list of sub chunks for a given host key for all lists.

        my @chunks = $storage->get_sub_chunks(hostkey => HEX);

Arguments

hostkey
Required. Host key.

Return value

Array of add chunks in the same format as described above:

    (
                { 
                        chunknum        => 37441,
                        prefix          => '',
                        addchunknum     => 23911,
                        list            => 'goog-malware-shavar'
                },
                { 
                        chunknum        => 37441,
                        prefix          => '',
                        addchunknum     => 22107,
                        list            => 'goog-malware-shavar'
                },
        );

Returns a list of unique add chunk numbers for a specific list.

IMPORTANT: this list should be sorted in ascendant order.

        my @ids = $storage->get_add_chunks_nums(list => 'goog-malware-shavar');

Arguments

list
Required. Google Safe Browsing list name

Return value

Array of integers sorted in ascendant order:

    qw(25121 25122 25123 25124 25125 25126)

Returns a list of unique sub chunk numbers for a specific list.

IMPORTANT: this list should be sorted in ascendant order.

        my @ids = $storage->get_sub_chunks_nums(list => 'goog-malware-shavar');

Arguments

list
Required. Google Safe Browsing list name

Return value

Array of integers sorted in ascendant order:

    qw(37441 37442 37443 37444 37445 37446 37447 37448 37449 37450)

Delete add chunks from the local database

        $storage->delete_add_chunks(chunknums => [qw/37444 37445 37446/], list => 'goog-malware-shavar');

Arguments

chunknums
Required. Array of chunk numbers
list
Required. Google Safe Browsing list name

No return value

Delete sub chunks from the local database

        $storage->delete_sub_chunks(chunknums => [qw/37444 37445 37446/], list => 'goog-malware-shavar');

Arguments

chunknums
Required. Array of chunk numbers
list
Required. Google Safe Browsing list name

No return value

Return a list of full hashes

        $storage->get_full_hashes(chunknum => 37444, timestamp => time() - 45 * 60 * 60, list => 'goog-malware-shavar');

Arguments

chunknum
Required. Add chunk number
timestamp
Required. Request hashes retrieved after this timestamp value.
list
Required. Google Safe Browsing list name

Return value

Array of full hashes:

    (HEX, HEX, HEX)

Save information about a successful database update

        $storage->updated('time' => time(), wait => 1800, list => 'goog-malware-shavar');

Arguments

time
Required. Time of the update.
wait
Required. Number o seconds to wait before doing the next update.
list
Required. Google Safe Browsing list name.

No return value

Save information about a failed database update

        $storage->update_error('time' => time(), wait => 60, list => 'goog-malware-shavar', errors => 1);

Arguments

time
Required. Time of the update.
wait
Required. Number o seconds to wait before doing the next update.
list
Required. Google Safe Browsing list name.
errors
Required. Number of errors.

No return value

Return information about the last database update

        my $info = $storage->last_update(list => 'goog-malware-shavar');

Arguments

list
Required. Google Safe Browsing list name.

Return value

Hash reference

        {
                time    => time(),
                wait    => 1800,
                errors  => 0
        }

Add full hashes to the local database

        $storage->add_full_hashes(timestamp => time(), full_hashes => [{chunknum => 2154, hash => HEX, list => 'goog-malware-shavar'}]);

Arguments

timestamp
Required. Time when the full hash was retrieved.
full_hashes
Required. Array of full hashes. Each element is an hash reference in the following format:

        {
                chunknum        => INTEGER,
                hash            => HEX,
                list            => 'goog-malware-shavar'
        }
    

No return value

Delete full hashes from the local database

        $storage->delete_full_hashes(chunknums => [qw/2154 2156 2158/], list => 'goog-malware-shavar');

Arguments

chunknums
Required. Array of chunk numbers.
list
Required. Google Safe Browsing list name.

No return value

Save information about failed attempt to retrieve a full hash

        $storage->full_hash_error(timestamp => time(), prefix => HEX);

Arguments

timestamp
Required. Time when the Google returned an error.
prefix
Required. Host prefix.

No return value

Save information about a successful attempt to retrieve a full hash

        $storage->full_hash_ok(timestamp => time(), prefix => HEX);

Arguments

timestamp
Required. Time when the Google returned an error.
prefix
Required. Host prefix.

No return value

Save information about a successful attempt to retrieve a full hash

        my $info = $storage->get_full_hash_error(prefix => HEX);

Arguments

prefix
Required. Host prefix.

Return value

undef if there was no error

Hash reference in the following format if there was an error:

        {
                timestamp       => time(),
                errors          => 3
        }

Retrieve the Message Authentication Code (MAC) keys.

        my $keys = $storage->get_mac_keys();

No arguments

Return value

Hash reference in the following format:

        {
                client_key      => '',
                wrapped_key     => ''
        }

Add the Message Authentication Code (MAC) keys.

        $storage->delete_mac_keys(client_key => 'KEY', wrapped_key => 'KEY');

Arguments

client_key
Required. Client key.
wrapped_key
Required. Wrapped key.

No return value

Delete the Message Authentication Code (MAC) keys.

        $storage->delete_mac_keys();

No arguments

No return value

Remove all local data

        $storage->delete_mac_keys();

Arguments

list
Required. Google Safe Browsing list name.

No return value

These functions are not intended for debugging purpose.

Transform hexadecimal strings to printable ASCII strings. Used mainly for debugging.

  print $storage->hex_to_ascii('hex value');

Transform ASCII strings to hexadecimal strings.

          print $storage->ascii_to_hex('ascii value');

0.4
Add reset mehtod to empty local database.
0.3
Return the hostkey as part of the add chunks (get_add_chunks).
0.2
Add functions to store and retrieve Message Authentication Code (MAC) keys.

See Net::Google::SafeBrowsing2 for handling Google Safe Browsing v2.

See Net::Google::SafeBrowsing2::Sqlite or Net::Google::SafeBrowsing2::MySQL for an example of storing and managing the Google Safe Browsing database.

Google Safe Browsing v2 API: <http://code.google.com/apis/safebrowsing/developers_guide_v2.html>

Julien Sobrier, <jsobrier@zscaler.com> or <julien@sobrier.net>

Copyright (C) 2011 by Julien Sobrier

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.8 or, at your option, any later version of Perl 5 you may have available.

2013-06-06 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.