1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.apache.directory.shared.kerberos.codec.etypeInfo2Entry.actions;
21
22
23 import org.apache.directory.api.asn1.DecoderException;
24 import org.apache.directory.api.asn1.ber.grammar.GrammarAction;
25 import org.apache.directory.api.asn1.ber.tlv.BerValue;
26 import org.apache.directory.api.asn1.ber.tlv.TLV;
27 import org.apache.directory.api.util.Strings;
28 import org.apache.directory.shared.kerberos.codec.etypeInfo2Entry.ETypeInfo2EntryContainer;
29 import org.apache.directory.shared.kerberos.components.ETypeInfo2Entry;
30 import org.slf4j.Logger;
31 import org.slf4j.LoggerFactory;
32
33
34
35
36
37
38
39 public class StoreSalt extends GrammarAction<ETypeInfo2EntryContainer>
40 {
41
42 private static final Logger LOG = LoggerFactory.getLogger( StoreSalt.class );
43
44
45 private static final boolean IS_DEBUG = LOG.isDebugEnabled();
46
47
48
49
50
51 public StoreSalt()
52 {
53 super( "ETYPE-INFO2-ENTRY salt" );
54 }
55
56
57
58
59
60 public void action( ETypeInfo2EntryContainer eTypeInfo2EntryContainer )
61 {
62 TLV tlv = eTypeInfo2EntryContainer.getCurrentTLV();
63 ETypeInfo2Entry etypeInfo2Entry = eTypeInfo2EntryContainer.getETypeInfo2Entry();
64
65
66 if ( tlv.getLength() != 0 )
67 {
68 BerValue value = tlv.getValue();
69
70
71 if ( value.getData() != null )
72 {
73 String salt = Strings.utf8ToString( value.getData() );
74 etypeInfo2Entry.setSalt( salt );
75 }
76 }
77
78 if ( IS_DEBUG )
79 {
80 LOG.debug( "salt : {}", etypeInfo2Entry.getSalt() );
81 }
82
83
84 eTypeInfo2EntryContainer.setGrammarEndAllowed( true );
85 }
86 }