Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-06-2006, 16:15   #1
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
[JAVA] Prelevare da Keystore PKCS#12 Chiave privata e file di certificato

ciao ragazzi come da titolo cerco un programma java che dato un PKCS#12 mi crea 2 nuovi file uno contenente solo la chiave privata che mi servirà dopo per firmare un messaggio e il corrispettivo certificato con la chiave pubblica in formato der.

Grazie mille
Ciao Ciao
__________________
Toshiba M40-281

Ultima modifica di ermasto : 06-06-2006 alle 18:30.
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 06-06-2006, 18:30   #2
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
nessuno mi puo aiutare
__________________
Toshiba M40-281
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 06-06-2006, 20:09   #3
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
KeyStore ks = KeyStore.getInstance("PKCS12");
InputStream in = new FileInputStream("x509pri.p12");
ks.load(in,null);
PrivateKey priv = (PrivateKey) ks.getKey("","");
java.security.cert.Certificate cert = ks.getCertificate("");
byte[] encodedCert = cert.getEncoded();

FileOutputStream certfos = new FileOutputStream("suecert.der");
certfos.write(encodedCert);
certfos.close();

allora ho trovato questo programmino che fa al caso mio ma ho due piccoli problemini
nel metodo ks.getkey() vuole essere passato l'alias e la password, ma il problema è che non so qual'è l'alias del mio certificato e lo stesso vale per il metodo getCertificate. c'è un modo per rimediare a ciò??

Grazie mille
__________________
Toshiba M40-281
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 06-06-2006, 20:56   #4
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Codice:
Enumeration aliases = ks.aliases();
while(aliases.hasMoreElements())
   System.out.println(aliases.nextElement());
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 06-06-2006, 21:07   #5
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
ho provato con il tuo codice kingv ma mi torna un errore: il codice modificato è:

Quote:
package Perform;

import java.util.*;
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.security.*;
import java.security.cert.CertificateException;

public class key {

public static void main(String args[]){



try {

KeyStore ks = KeyStore.getInstance("PKCS12");
InputStream in = new FileInputStream("e://x509pri.p12");
ks.load(in,null);
Enumeration aliases = ks.aliases();
while(aliases.hasMoreElements())
System.out.println(aliases.nextElement());
PrivateKey priv = (PrivateKey) ks.getKey("aliases","aliaseskeypass".toCharArray());
byte[] encodedKey = priv.getEncoded();

/* save the certificate in a file named "suecert" */
FileOutputStream keyfos = new FileOutputStream("suekey.der");
keyfos.write(encodedKey);
keyfos.close();
//You can extract the public key certificate from the keystore and save its encoded bytes to a file named suecert, via the following.

java.security.cert.Certificate cert = ks.getCertificate("aliases");
byte[] encodedCert = cert.getEncoded();

/* save the certificate in a file named "suecert" */
FileOutputStream certfos = new FileOutputStream("suecert.der");
certfos.write(encodedCert);
certfos.close();



} catch (KeyStoreException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (CertificateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnrecoverableKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
questo è l'errore:

Exception in thread "main" java.lang.NullPointerException
at Perform.key.main(key.java:28)

a proposito questo metodo:

Quote:
PrivateKey priv = (PrivateKey) ks.getKey("aliases","aliaseskeypass".toCharArray());
byte[] encodedKey = priv.getEncoded();

/* save the certificate in a file named "suecert" */
FileOutputStream keyfos = new FileOutputStream("suekey.der");
keyfos.write(encodedKey);
keyfos.close();

va bene per salvare in formato Pkcs#8 la chiave privata che poi posso usare per firmare i messaggi?

Grazie mille
__________________
Toshiba M40-281

Ultima modifica di ermasto : 06-06-2006 alle 21:09.
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 08:36   #6
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Codice:
package Perform;

import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import java.security.*;
import java.security.cert.CertificateException;

import java.util.*;


public class key
{
	public static void main(String[] args)
	{
		try
		{
			KeyStore ks = KeyStore.getInstance("PKCS12");
			InputStream in = new FileInputStream("e://x509pri.p12");
			ks.load(in, null);

			Enumeration aliases = ks.aliases();
			String alias = (String)aliases.nextElement();

			PrivateKey priv = (PrivateKey) ks.getKey(alias, "aliaseskeypass".toCharArray());
			byte[] encodedKey = priv.getEncoded();

			/* save the certificate in a file named "suecert" */
			FileOutputStream keyfos = new FileOutputStream("suekey.der");
			keyfos.write(encodedKey);
			keyfos.close();

			//You can extract the public key certificate from the keystore and save its encoded bytes to a file named suecert, via the following.
			java.security.cert.Certificate cert = ks.getCertificate(alias);
			byte[] encodedCert = cert.getEncoded();

			/* save the certificate in a file named "suecert" */
			FileOutputStream certfos = new FileOutputStream("suecert.der");
			certfos.write(encodedCert);
			certfos.close();
		}
		catch (KeyStoreException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (FileNotFoundException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (NoSuchAlgorithmException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (CertificateException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (IOException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		catch (UnrecoverableKeyException e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}
prova così.
di solito i p12 sono protetti da password (che può essere differente da quella della chiave). sei sicuro di quel "null" nella load?
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 08:42   #7
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da ermasto
va bene per salvare in formato Pkcs#8 la chiave privata che poi posso usare per firmare i messaggi?
dimenticavo.
sì dovrebbe essere ok. se non sei sicuro controlla col metodo getFormat() di PrivateKey
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 09:00   #8
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
io lo scarico dalla mia CA e se provo a installarlo nel browser mi chiede solo la password per la chiave privata

cmq ho provato il tuo codice e mi da quest errore

java.security.UnrecoverableKeyException: Get Key failed: Given final block not properly padded
at com.sun.net.ssl.internal.ssl.PKCS12KeyStore.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(Unknown Source)
at Perform.key.main(key.java:30)
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.SunJCE_ab.b(DashoA12275)
at com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndDESede.engineDoFinal(DashoA12275)
at javax.crypto.Cipher.doFinal(DashoA12275)
... 3 more

poi anche se tolgo la parte che si riferisce alla chiave privata e voglio solo estrarre il certificato mi da quest errore.

Exception in thread "main" java.lang.NullPointerException
at Perform.key.main(key.java:40)
__________________
Toshiba M40-281
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 09:09   #9
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
puo' essere che le password siano coincidenti, per questo ti viene chiesta una volta sola.

prova a mettere qui:
ks.load(in, null);

la stessa password con cui proteggi la chiave privata al posto di null.


fammi sapere.
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 09:22   #10
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
Quote:
Originariamente inviato da kingv
puo' essere che le password siano coincidenti, per questo ti viene chiesta una volta sola.

prova a mettere qui:
ks.load(in, null);

la stessa password con cui proteggi la chiave privata al posto di null.


fammi sapere.
ma mi sorge un dubbio ma la password come la metto?? nel senso io ho una pass numerica di 10 caratteri ma nel programmino non la inserisco mai direttamente sempre usando "aliaseskeypass".toCharArray().

Poi ho provato a mettere in ks.load(in,"aliaseskeypass".toCharArray()) e mi caccia quest'altra eccezione

java.io.IOException: failed to decrypt safe contents entry: javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.net.ssl.internal.ssl.PKCS12KeyStore.engineLoad(Unknown Source)
at java.security.KeyStore.load(Unknown Source)
at Perform.key.main(key.java:24)
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.SunJCE_ab.b(DashoA12275)
at com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndRC2_40.engineDoFinal(DashoA12275)
at javax.crypto.Cipher.doFinal(DashoA12275)
... 3 more

cosa puo essere??

Grazie mille x l'aiuto
__________________
Toshiba M40-281
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 07-06-2006, 09:47   #11
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
"aliaseskeypass" è la password.....
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2006, 15:21   #12
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
niente da fare mi sa sempre lo stesso errore:

java.security.UnrecoverableKeyException: Get Key failed: Given final block not properly padded
at com.sun.net.ssl.internal.ssl.PKCS12KeyStore.engineGetKey(Unknown Source)
at java.security.KeyStore.getKey(Unknown Source)
at Perform.key.main(key.java:32)
Caused by: javax.crypto.BadPaddingException: Given final block not properly padded
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.SunJCE_h.b(DashoA12275)
at com.sun.crypto.provider.SunJCE_ab.b(DashoA12275)
at com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndDESede.engineDoFinal(DashoA12275)
at javax.crypto.Cipher.doFinal(DashoA12275)1

non riesco proprio a capire da cosa è provocato
__________________
Toshiba M40-281
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2006, 15:57   #13
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
allora il programma ora funziona in parte ecco il codice:

[quote]


[/package Perform;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;

import java.security.*;
import java.security.cert.CertificateException;

import java.util.*;


public class key
{
public static void main(String[] args)
{
try
{
KeyStore ks = KeyStore.getInstance("PKCS12");
InputStream in = new FileInputStream("e://x509pri.p12");
ks.load(in, null);

Enumeration aliases = ks.aliases();
String alias=null;
while(aliases.hasMoreElements())
{
alias = (String)aliases.nextElement();
System.out.println(alias);
}
PrivateKey priv = (PrivateKey) ks.getKey(alias, "1234567890".toCharArray());
byte[] encodedKey = priv.getEncoded();
System.out.println(priv);
/* save the certificate in a file named "suecert" */
FileOutputStream keyfos = new FileOutputStream("suekey.der");
keyfos.write(encodedKey);
keyfos.close();


//You can extract the public key certificate from the keystore and save its encoded bytes to a file named suecert, via the following.
java.security.cert.Certificate cert = ks.getCertificate(alias);
byte[] encodedCert = cert.getEncoded();
System.out.println(" Certificate : " + cert);
/* save the certificate in a file named "suecert" */
FileOutputStream certfos = new FileOutputStream("suecert.der");
certfos.write(encodedCert);
certfos.close();
}
catch (KeyStoreException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (FileNotFoundException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (NoSuchAlgorithmException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (CertificateException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
catch (IOException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
} catch (UnrecoverableKeyException e) {
//TODO Auto-generated catch block
e.printStackTrace();
}

}
}
[quote]

infatti mi stampa la chiave e me la salva pure anche se devo vedere in che estensione salvarla, perche penso che .der non va bene sai in che formato si salvano i pkcs#8??

solo che dopo avermi fatto stampare la chiave privata mi da quest'ecezione sul metodo:
byte[] encodedCert = cert.getEncoded();

eccola qua:
Exception in thread "main" java.lang.NullPointerException
at Perform.key.main(key.java:43)

e non capisco come mai
__________________
Toshiba M40-281
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2006, 17:46   #14
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
io ti rispondo ma non mi leggi...


sostituisci:
ks.load(in, null);
con:
ks.load(in, "1234567890");
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2006, 18:01   #15
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
Quote:
Originariamente inviato da kingv
io ti rispondo ma non mi leggi...


sostituisci:
ks.load(in, null);
con:
ks.load(in, "1234567890");
hai ragione solo che quando avevo provato mi dava lo stesso gli errori e non ci avevo piu fatto caso

Scusami tanto e grazie mille per il tuo prezioso aiuto
__________________
Toshiba M40-281
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 08-06-2006, 19:27   #16
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
Quote:
Originariamente inviato da ermasto
hai ragione solo che quando avevo provato mi dava lo stesso gli errori e non ci avevo piu fatto caso

no problem stavo scherzando ovviamente

CIao
kingv è offline   Rispondi citando il messaggio o parte di esso
Old 09-06-2006, 23:52   #17
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 560
è proprio il topic che cercavo:

ho creato una coppia di chiavi (pubblica,privata), le vorrei salvare in maniera sicura sul pc. Qual è la combinazione migliore( + sicura ) per il salvataggio??...Le chiavi le creo cosi':
Codice:
KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA", "BC"); // 
      keyGen.initialize(512);
      KeyPair chiaviRSA = keyGen.generateKeyPair();
      PrivateKey chiavePrivata = chiaviRSA.getPrivate();
      PublicKey chiavePublica = chiaviRSA.getPublic();
__________________
PiccoliHotel.com è una guida indipendente dedicata ai piccoli hotel italiani: B&B, agriturismi e boutique hotel selezionati uno ad uno, senza pubblicità a pagamento.

viveredirete Guide, strategie e strumenti per guadagnare online davvero, ogni giorno.


Maldive per due: I resort delle Maldive raccontati isola per isola dagli esperti del viaggio in due: l'atollo, la villa, il transfer e la stagione giusti, con i prezzi veri a notte.
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2006, 09:54   #18
ermasto
Senior Member
 
L'Avatar di ermasto
 
Iscritto dal: Mar 2004
Messaggi: 581
ora un altro passo che devo fare è il seguente:

devo creare un messaggio soap e aggiungere ad esso un security token che è il certificato x509 e poi tutto questo messaggio soap lo devo firmare con la chiave privata che appartiene al certificato

Per quanto riguarda la creazione del messaggio soap non ci sono problemi ma non sono riuscito a trovare nulla su come aggiungere il token x509, ho letto in giro che devo usare wss4j ma non ho trovato una buona guida e cercare in tutte le API è uno sbattimento assurdo, che tu sappia esiste una guida o qualche sito che lo spiega meglio magari con qualche esempio??
__________________
Toshiba M40-281
ermasto è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2006, 12:20   #19
Mazza2
Senior Member
 
Iscritto dal: Jan 2002
Città: Spagna
Messaggi: 560
che differenza c'e' tra pcks 8 e 12??? se salvo la privata con pkcs 8,.,.non capisco come la salva con pcks 8,.., un aiuto pls
__________________
PiccoliHotel.com è una guida indipendente dedicata ai piccoli hotel italiani: B&B, agriturismi e boutique hotel selezionati uno ad uno, senza pubblicità a pagamento.

viveredirete Guide, strategie e strumenti per guadagnare online davvero, ogni giorno.


Maldive per due: I resort delle Maldive raccontati isola per isola dagli esperti del viaggio in due: l'atollo, la villa, il transfer e la stagione giusti, con i prezzi veri a notte.
Mazza2 è offline   Rispondi citando il messaggio o parte di esso
Old 10-06-2006, 19:38   #20
kingv
Senior Member
 
L'Avatar di kingv
 
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
ermasto> non ho mai usato wss4j anche se l'argomento mi interessa parecchio. non posso aiutarti ma se trovi dei link interessanti postali

mazza> pkcs8 è un formato per le chiavi private (neanche molto usato per quello che ho visto), pkcs12 invece è lo standard per contenere chiavi e certificati in un file (protetto da crittografia a chiave simmetrica).
kingv è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
OpenAI avvisa oltre 100 organizzazioni p...
Dall'AI alla SI: il rebranding di Trump ...
0patch offrirà supporto esteso pe...
Sudo sembra un iPod, ma nasconde una car...
Meta, OpenAI e Google rifanno OpenClaw: ...
Pixel 10a: Google alza il prezzo di 100 ...
5 sconti TOP e una super city e-bike per...
Speciale Sonoff per utenti Prime: 4 valv...
Meno ghiaccio, meno acqua: il dato che c...
SBS annuncia il lancio degli accessori P...
Speciale Smart TV 65 e 75 pollici in off...
GL.iNet Beryl 7 a 107,19€: router Wi-Fi ...
Il plasma di un reattore a fusione ripre...
Ha comprato un telefono rotto a 30 dolla...
Il Dipartimento della Guerra USA pensa a...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:23.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v