# \irenHmac

Class irenHmac

##### Questa classe implementa l'autenticazione attraverso il protocollo HMAC (Hash - based message authentication)

Descrizione dell'Algoritmo:

1. Rimozione del protocollo, nome del server e porta dalla URL Chiamata
2. Decodifica dei parametri di GET
3. Ordinamento alfabetico degli stessi
4. Costruzione della queryString
5. Costruzione della stringa da criptare (path dello script + queryString)
6. Hash SHA256 della chiave
7. HMAC con SHA256 con la chiave generata al passo precedente
8. base64 della hash ottenuta

## Summary

Methods
Properties
Constants
prepareHMacString()
createHash()
verifyHMac()
noAuth()
noValid()
$secret
$authParam
$inValidParams
$noAuthPage
$noValidPage
No constants found
No protected methods found
No protected properties found
N/A
No private methods found
No private properties found
N/A

File
  lib/hmac.class.php
Package
  Default
Class hierarchy
  \irenHmac

## Tags

author | Marco Carbone marco.carbone@gisweb.it

## Properties

### $secret

    $secret : string

#### Type

string — Chiave condivisa per criptare il messaggio definita ne file config.php

#

## Tags

None found

### $authParam

    $authParam : string

#### Type

string — Nome del parametro di GET per Autenticazione

#

## Tags

None found

### $inValidParams

    $inValidParams : array<mixed,string>

#### Type

array<mixed,string> — Parametri di GET da non considerare nel criptare il messaggio

#

## Tags

None found

### $noAuthPage

    $noAuthPage : string

#### Type

string — URL di redirect alla quale rimandare in caso di mancanza di Autenticazione

#

## Tags

None found

### $noValidPage

    $noValidPage : string

#### Type

string — URL di redirect alla quale rimandare in caso di Autenticazione fallita

#

## Tags

None found

## Methods

### prepareHMacString()

    prepareHMacString(  $path,   $data) : string

Metodo per la preparazione della Stringa da Criptare

#### Parameters

| $path | Path della pagina chiamata da autenticare
| $data | Parametri da considerare (generalmente i parametri di GET) per creare la stringa da criptare

#### Returns

string —

Stringa da criptare secondo i criteri dell'HMAC Authentication

#

static

## Tags

None found

### createHash()

    createHash(  $message) : string

Metodo che genera il messaggio criptato

#### Parameters

| $message | Messaggio da criptare

#### Returns

string —

Messaggio criptato

#

static

## Tags

None found

### verifyHMac()

    verifyHMac(  $hmac,   $path,   $data) : boolean

Metodo che verifica se la hash passata è corrispondente con i parametri della chiamata

#### Parameters

| $hmac | string Stringa da verificare
| $path | string Path dello Script
| $data | string[] Parametri per la costruzione della hash

#### Returns

boolean

#

static

## Tags

None found

### noAuth()

    noAuth() : void

Metodo che reindirizza alla pagina di Nessuna Autenticazione passata

#

static

## Tags

None found

### noValid()

    noValid() : void

Metodo che reindirizza alla pagina di Autenticazione Fallita

#

static

## Tags

None found

### hmac.class.php