You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by co...@apache.org on 2023/03/30 10:42:33 UTC

[directory-kerby] branch 1.1.x-fixes updated (0c3e824b -> 223ada9f)

This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a change to branch 1.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/directory-kerby.git


    from 0c3e824b Updating gson to 2.8.9
     new 0b339e14 DIRKRB-737 - Update Nimbus Jose
     new acd409c5 Updating test keys to be 2048 bits
     new 223ada9f DIRKRB-747 - Date encoding is buggy with JDK 15 and non-Arabic (Western) numerals

The 3 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../kerby/asn1/type/Asn1GeneralizedTime.java       |  9 ++--
 .../org/apache/kerby/asn1/type/Asn1UtcTime.java    |  5 ++-
 ...cTimeTest.java => Asn1GeneralizedTimeTest.java} | 48 +++++++++++-----------
 .../org/apache/kerby/asn1/Asn1UtcTimeTest.java     | 22 ++++++++++
 .../src/main/java/org/apache/kerby/KOptions.java   |  8 +---
 .../src/test/resources/oauth2.com_public_key.pem   | 11 +++--
 kerby-kdc-test/src/test/resources/private_key.pem  | 40 +++++++++++-------
 .../src/test/resources/private_key.pem             | 40 +++++++++++-------
 .../test/resources/token-service-public_key.pem    | 11 +++--
 .../kerby/kerberos/tool/klist/KlistTool.java       |  5 ++-
 pom.xml                                            |  2 +-
 11 files changed, 125 insertions(+), 76 deletions(-)
 copy kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/{Asn1UtcTimeTest.java => Asn1GeneralizedTimeTest.java} (56%)


[directory-kerby] 02/03: Updating test keys to be 2048 bits

Posted by co...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch 1.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/directory-kerby.git

commit acd409c50a17d767c314a725232196466430157d
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Mon Nov 11 12:58:58 2019 +0000

    Updating test keys to be 2048 bits
---
 .../src/test/resources/oauth2.com_public_key.pem   | 11 +++---
 kerby-kdc-test/src/test/resources/private_key.pem  | 40 ++++++++++++++--------
 .../src/test/resources/private_key.pem             | 40 ++++++++++++++--------
 .../test/resources/token-service-public_key.pem    | 11 +++---
 4 files changed, 66 insertions(+), 36 deletions(-)

diff --git a/kerby-kdc-test/src/test/resources/oauth2.com_public_key.pem b/kerby-kdc-test/src/test/resources/oauth2.com_public_key.pem
index 471a5179..4a8b2746 100644
--- a/kerby-kdc-test/src/test/resources/oauth2.com_public_key.pem
+++ b/kerby-kdc-test/src/test/resources/oauth2.com_public_key.pem
@@ -1,6 +1,9 @@
 -----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4BaCukPmveaHtV7OxXP8/mCCV
-Y2oHXqd+6iIliPRVCxirgp2XHg2nrAkBJTt/y13IHCeVl6Avm7UMzXxxv60NND1H
-e6+zDMgh3IVZM/Xe8uNHNF2C6jR6Z4KQ/GfccTvLuEQwWOt47CjZNDMFFzr2niOZ
-Us6V/0QzqDbHdDc3bQIDAQAB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuKNwlHrxrqSclYglwd7O
+ubYvSlYJfbXAFf6shyq5DSwtBQ3/hgY8CzwyPPcTuT1JXfqQmufmFKoJtJeJehjJ
+sqYtXKY/wDg3ex9Ac4podaPaDlCD+QvN7OJLQ1hrdIpFE59wLw3StJIgvq3lrFUQ
+qyilyYaI0CKfTVKIYhBjf06SbO9asH2txoxmrkvJpyW9Vdrf5TrsnTJ1Z59EiyJq
+nu2JtIZ5Alz5f/UuIomv/hHJmSkRDD2DOEMh2hDNykFjhKatlaxnIEkijl5OF6kT
+hj38EWkg1oXwQ9PoHC4WFshGfAi/Vikf+yWZb1NHmxORwWV5E9BJFguuWCjb49fM
+pQIDAQAB
 -----END PUBLIC KEY-----
diff --git a/kerby-kdc-test/src/test/resources/private_key.pem b/kerby-kdc-test/src/test/resources/private_key.pem
index 1c2ee59c..d21e2fdf 100644
--- a/kerby-kdc-test/src/test/resources/private_key.pem
+++ b/kerby-kdc-test/src/test/resources/private_key.pem
@@ -1,16 +1,28 @@
 -----BEGIN PRIVATE KEY-----
-MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALgFoK6Q+a95oe1X
-s7Fc/z+YIJVjagdep37qIiWI9FULGKuCnZceDaesCQElO3/LXcgcJ5WXoC+btQzN
-fHG/rQ00PUd7r7MMyCHchVkz9d7y40c0XYLqNHpngpD8Z9xxO8u4RDBY63jsKNk0
-MwUXOvaeI5lSzpX/RDOoNsd0NzdtAgMBAAECgYBkEutnA4BFZSgiImeeNKy6sMhH
-dWDb0SXVZw5ayzfUZ8xquQVqgPV8EZpz/QN2Y+oEQQtl1qdOPKcg5z6dvVclwm8d
-aWeflrGcH45QI5mjxsuN/1D/xY5A7adO+/KWBwoUElmJ/OAIPXeaPyQh+FL2Y6Kd
-snrq+6LXYWZzZn+vIQJBAOkWN3SWEimgW5hLPZRtVw5Y+tXfDp6q8YRXK8RREtmi
-HKJySYjyMz01kda3IVVq4siFvTQt0mP9St8RjNrERSsCQQDKHKmudIdUAU+nRs89
-i5S0N9x3jiX7j+yO+9b5Nm+JAPsimA/pA2gQhkXD5UURerIoEc/JLODdqbmT5G7b
-DNnHAkEA3uL0wpKi6ZVDIT2JtD5eSgUCT7ON2mIis2dcHc1dFimz8g8RjFf2cWih
-fc3+nRypohBpXdUXY7AZgXfZ1nRqowJBAMh1f1JZn3ORTViC4b+QNnA8y30EzuVg
-TWdPn1tUQ3GmOG+KVJVu3IMvOfje6A87G4Kkj+tfiLQxx69IrS6z4zcCQCkeIynb
-RSoEti3Dxtstxn8HMWGpz1SyAtI9/lmmxec+HNOIvgwX8z28VtAbRMo+lt/Fp0rn
-bfFmyZ0PPmTHrLE=
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC4o3CUevGupJyV
+iCXB3s65ti9KVgl9tcAV/qyHKrkNLC0FDf+GBjwLPDI89xO5PUld+pCa5+YUqgm0
+l4l6GMmypi1cpj/AODd7H0Bzimh1o9oOUIP5C83s4ktDWGt0ikUTn3AvDdK0kiC+
+reWsVRCrKKXJhojQIp9NUohiEGN/TpJs71qwfa3GjGauS8mnJb1V2t/lOuydMnVn
+n0SLImqe7Ym0hnkCXPl/9S4iia/+EcmZKREMPYM4QyHaEM3KQWOEpq2VrGcgSSKO
+Xk4XqROGPfwRaSDWhfBD0+gcLhYWyEZ8CL9WKR/7JZlvU0ebE5HBZXkT0EkWC65Y
+KNvj18ylAgMBAAECggEAPvHJAXVgSw9nKjr91Dfm9by8JnVqSubZEyZ9Hp9b8req
+qVx6TfB2K8ZbwhjhKndQOa+f+I8yCr1lDaHThkJJEJRCRqGOfjMsBtdCm6EFt4Ui
+Y1rjgtWZYDZNPio4h8RThDsIfaISwOhILXkPIU7mndL/odIxdfM3p56JTBUWNmG4
+mUg3NB3L27F6Syjf/u7JSSz+58CS3WPgTj77nOefYvsZvVqvkviE+sO1+B1ysojP
+AWnF9mOPU8lnp/iLWsJ7cicHEu8wqB5+sWmzPEvXsXfLFWdbkHxN/SpHDVjxlQda
+6a6gRZ23pq2h0PTHqMrrWo274pRmdGHWLH9lSnNlCQKBgQDd1Lh23uXARWK4PIFO
+jTJoJtoC6cBckryK+8EU92N68Usm9W4aKGpzvZXdYUGcqXm1IYq2YatBBcicWKtm
+FcGSidAfv3OVK7UXaJY+pqpNXS0s53QDgjgDNcbH45J4NgBj/JQOjHWgCK1gKs0u
+8Bd3kwYxYggcVBW4zqImIhPEhwKBgQDVFCMtGhEcQpAGzZqYWFH5rbSSxSw0QsIG
+Wur5kHRitkqJ4fI/8OK7zfXMsHevyA2OGvsyK8eoQHMC43/QB2PbGgWiJChqp+L1
+ZqFwSVZcaKRQ+Nen4ledPiw+c8c9MZizTQt7Rm+JtH0fRg1pP0VLu4xULitYc07e
+Y0K4HnpccwKBgEwf5bWVRE65AOmsictFFRk8y+/X+5VJHb6sKlRhmRflmh6idsgv
+OmjBlJ5F89gpKIUKH6n61mQX8gIFQ7xilu0MsglTD/0O5LRFxdl2JFcsNIaGXv+d
+Pk+Lss2BwQ/TqEqnsL9VYEAs+iJYTdVfuw3jvGpR8+qUyGeFMYvYgeQdAoGAKuC2
+g2jvcIRkfzn4lhePx3KRF8fdsVaNvMGm7zmGcibEsSJqoTtUJP65K8uHCjRzpdkA
+G4R71PvDKR2mprIWAg0mfQ5Ro8TNAxz396SKYGYeSr0IiJwfjWDpflfGDCZi2BH0
+8YWnBErxss1h/X/h7e97uaTgzBfIEzBeSLa5YMkCgYEAkvozFjZM9A4MHctTYt13
+SdmsGDSh2h9KfRgCtOH3harssc0O6FudkOey+Fg9GagAB/MlsGO+cud/UnA5PxAQ
+EULUNbWYOWZZjQ9ReWCfYMxQfOCJSTt1ot5/vxD87gDL1KGVXnKP97bVjYggKv++
+BQABuO6CLorggMCKxUlXwP8=
 -----END PRIVATE KEY-----
diff --git a/kerby-kerb/integration-test/src/test/resources/private_key.pem b/kerby-kerb/integration-test/src/test/resources/private_key.pem
index 1c2ee59c..d21e2fdf 100644
--- a/kerby-kerb/integration-test/src/test/resources/private_key.pem
+++ b/kerby-kerb/integration-test/src/test/resources/private_key.pem
@@ -1,16 +1,28 @@
 -----BEGIN PRIVATE KEY-----
-MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBALgFoK6Q+a95oe1X
-s7Fc/z+YIJVjagdep37qIiWI9FULGKuCnZceDaesCQElO3/LXcgcJ5WXoC+btQzN
-fHG/rQ00PUd7r7MMyCHchVkz9d7y40c0XYLqNHpngpD8Z9xxO8u4RDBY63jsKNk0
-MwUXOvaeI5lSzpX/RDOoNsd0NzdtAgMBAAECgYBkEutnA4BFZSgiImeeNKy6sMhH
-dWDb0SXVZw5ayzfUZ8xquQVqgPV8EZpz/QN2Y+oEQQtl1qdOPKcg5z6dvVclwm8d
-aWeflrGcH45QI5mjxsuN/1D/xY5A7adO+/KWBwoUElmJ/OAIPXeaPyQh+FL2Y6Kd
-snrq+6LXYWZzZn+vIQJBAOkWN3SWEimgW5hLPZRtVw5Y+tXfDp6q8YRXK8RREtmi
-HKJySYjyMz01kda3IVVq4siFvTQt0mP9St8RjNrERSsCQQDKHKmudIdUAU+nRs89
-i5S0N9x3jiX7j+yO+9b5Nm+JAPsimA/pA2gQhkXD5UURerIoEc/JLODdqbmT5G7b
-DNnHAkEA3uL0wpKi6ZVDIT2JtD5eSgUCT7ON2mIis2dcHc1dFimz8g8RjFf2cWih
-fc3+nRypohBpXdUXY7AZgXfZ1nRqowJBAMh1f1JZn3ORTViC4b+QNnA8y30EzuVg
-TWdPn1tUQ3GmOG+KVJVu3IMvOfje6A87G4Kkj+tfiLQxx69IrS6z4zcCQCkeIynb
-RSoEti3Dxtstxn8HMWGpz1SyAtI9/lmmxec+HNOIvgwX8z28VtAbRMo+lt/Fp0rn
-bfFmyZ0PPmTHrLE=
+MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC4o3CUevGupJyV
+iCXB3s65ti9KVgl9tcAV/qyHKrkNLC0FDf+GBjwLPDI89xO5PUld+pCa5+YUqgm0
+l4l6GMmypi1cpj/AODd7H0Bzimh1o9oOUIP5C83s4ktDWGt0ikUTn3AvDdK0kiC+
+reWsVRCrKKXJhojQIp9NUohiEGN/TpJs71qwfa3GjGauS8mnJb1V2t/lOuydMnVn
+n0SLImqe7Ym0hnkCXPl/9S4iia/+EcmZKREMPYM4QyHaEM3KQWOEpq2VrGcgSSKO
+Xk4XqROGPfwRaSDWhfBD0+gcLhYWyEZ8CL9WKR/7JZlvU0ebE5HBZXkT0EkWC65Y
+KNvj18ylAgMBAAECggEAPvHJAXVgSw9nKjr91Dfm9by8JnVqSubZEyZ9Hp9b8req
+qVx6TfB2K8ZbwhjhKndQOa+f+I8yCr1lDaHThkJJEJRCRqGOfjMsBtdCm6EFt4Ui
+Y1rjgtWZYDZNPio4h8RThDsIfaISwOhILXkPIU7mndL/odIxdfM3p56JTBUWNmG4
+mUg3NB3L27F6Syjf/u7JSSz+58CS3WPgTj77nOefYvsZvVqvkviE+sO1+B1ysojP
+AWnF9mOPU8lnp/iLWsJ7cicHEu8wqB5+sWmzPEvXsXfLFWdbkHxN/SpHDVjxlQda
+6a6gRZ23pq2h0PTHqMrrWo274pRmdGHWLH9lSnNlCQKBgQDd1Lh23uXARWK4PIFO
+jTJoJtoC6cBckryK+8EU92N68Usm9W4aKGpzvZXdYUGcqXm1IYq2YatBBcicWKtm
+FcGSidAfv3OVK7UXaJY+pqpNXS0s53QDgjgDNcbH45J4NgBj/JQOjHWgCK1gKs0u
+8Bd3kwYxYggcVBW4zqImIhPEhwKBgQDVFCMtGhEcQpAGzZqYWFH5rbSSxSw0QsIG
+Wur5kHRitkqJ4fI/8OK7zfXMsHevyA2OGvsyK8eoQHMC43/QB2PbGgWiJChqp+L1
+ZqFwSVZcaKRQ+Nen4ledPiw+c8c9MZizTQt7Rm+JtH0fRg1pP0VLu4xULitYc07e
+Y0K4HnpccwKBgEwf5bWVRE65AOmsictFFRk8y+/X+5VJHb6sKlRhmRflmh6idsgv
+OmjBlJ5F89gpKIUKH6n61mQX8gIFQ7xilu0MsglTD/0O5LRFxdl2JFcsNIaGXv+d
+Pk+Lss2BwQ/TqEqnsL9VYEAs+iJYTdVfuw3jvGpR8+qUyGeFMYvYgeQdAoGAKuC2
+g2jvcIRkfzn4lhePx3KRF8fdsVaNvMGm7zmGcibEsSJqoTtUJP65K8uHCjRzpdkA
+G4R71PvDKR2mprIWAg0mfQ5Ro8TNAxz396SKYGYeSr0IiJwfjWDpflfGDCZi2BH0
+8YWnBErxss1h/X/h7e97uaTgzBfIEzBeSLa5YMkCgYEAkvozFjZM9A4MHctTYt13
+SdmsGDSh2h9KfRgCtOH3harssc0O6FudkOey+Fg9GagAB/MlsGO+cud/UnA5PxAQ
+EULUNbWYOWZZjQ9ReWCfYMxQfOCJSTt1ot5/vxD87gDL1KGVXnKP97bVjYggKv++
+BQABuO6CLorggMCKxUlXwP8=
 -----END PRIVATE KEY-----
diff --git a/kerby-kerb/integration-test/src/test/resources/token-service-public_key.pem b/kerby-kerb/integration-test/src/test/resources/token-service-public_key.pem
index 471a5179..4a8b2746 100644
--- a/kerby-kerb/integration-test/src/test/resources/token-service-public_key.pem
+++ b/kerby-kerb/integration-test/src/test/resources/token-service-public_key.pem
@@ -1,6 +1,9 @@
 -----BEGIN PUBLIC KEY-----
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4BaCukPmveaHtV7OxXP8/mCCV
-Y2oHXqd+6iIliPRVCxirgp2XHg2nrAkBJTt/y13IHCeVl6Avm7UMzXxxv60NND1H
-e6+zDMgh3IVZM/Xe8uNHNF2C6jR6Z4KQ/GfccTvLuEQwWOt47CjZNDMFFzr2niOZ
-Us6V/0QzqDbHdDc3bQIDAQAB
+MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuKNwlHrxrqSclYglwd7O
+ubYvSlYJfbXAFf6shyq5DSwtBQ3/hgY8CzwyPPcTuT1JXfqQmufmFKoJtJeJehjJ
+sqYtXKY/wDg3ex9Ac4podaPaDlCD+QvN7OJLQ1hrdIpFE59wLw3StJIgvq3lrFUQ
+qyilyYaI0CKfTVKIYhBjf06SbO9asH2txoxmrkvJpyW9Vdrf5TrsnTJ1Z59EiyJq
+nu2JtIZ5Alz5f/UuIomv/hHJmSkRDD2DOEMh2hDNykFjhKatlaxnIEkijl5OF6kT
+hj38EWkg1oXwQ9PoHC4WFshGfAi/Vikf+yWZb1NHmxORwWV5E9BJFguuWCjb49fM
+pQIDAQAB
 -----END PUBLIC KEY-----


[directory-kerby] 01/03: DIRKRB-737 - Update Nimbus Jose

Posted by co...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch 1.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/directory-kerby.git

commit 0b339e14dc3050ddbf347f2dc599df9641360db6
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Mon Nov 11 13:35:57 2019 +0000

    DIRKRB-737 - Update Nimbus Jose
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 53100f02..3279a81a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,7 +53,7 @@
     <ldap.api.version>1.0.1</ldap.api.version>
     <log4j.version>1.2.17</log4j.version>
     <junit.version>4.12</junit.version>
-    <nimbus.jose.version>4.41.2</nimbus.jose.version>
+    <nimbus.jose.version>8.2.1</nimbus.jose.version>
     <slf4j.version>1.7.26</slf4j.version>
     <assertj.version>2.6.0</assertj.version>
     <findbugs.version>3.0.4</findbugs.version>


[directory-kerby] 03/03: DIRKRB-747 - Date encoding is buggy with JDK 15 and non-Arabic (Western) numerals

Posted by co...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

coheigea pushed a commit to branch 1.1.x-fixes
in repository https://gitbox.apache.org/repos/asf/directory-kerby.git

commit 223ada9f7d32d8bce3b6855ae9f403e078c70b2b
Author: Colm O hEigeartaigh <co...@apache.org>
AuthorDate: Thu Jan 19 07:56:50 2023 +0000

    DIRKRB-747 - Date encoding is buggy with JDK 15 and non-Arabic (Western) numerals
---
 .../kerby/asn1/type/Asn1GeneralizedTime.java       |  9 ++--
 .../org/apache/kerby/asn1/type/Asn1UtcTime.java    |  5 ++-
 ...cTimeTest.java => Asn1GeneralizedTimeTest.java} | 48 +++++++++++-----------
 .../org/apache/kerby/asn1/Asn1UtcTimeTest.java     | 22 ++++++++++
 .../src/main/java/org/apache/kerby/KOptions.java   |  8 +---
 .../kerby/kerberos/tool/klist/KlistTool.java       |  5 ++-
 6 files changed, 58 insertions(+), 39 deletions(-)

diff --git a/kerby-common/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1GeneralizedTime.java b/kerby-common/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1GeneralizedTime.java
index 9738df26..81069ccd 100644
--- a/kerby-common/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1GeneralizedTime.java
+++ b/kerby-common/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1GeneralizedTime.java
@@ -26,6 +26,7 @@ import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
 import java.util.SimpleTimeZone;
 import java.util.TimeZone;
 
@@ -61,14 +62,14 @@ public class Asn1GeneralizedTime extends Asn1Simple<Date> {
 
         fixedDateStr = dateStr.substring(0, 14) + millSecs;
         if (withZ) {
-            sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.US);
             sdf.setTimeZone(new SimpleTimeZone(0, "Z"));
         } else if (withZone) {
             fixedDateStr += timeZonePart;
-            sdf = new SimpleDateFormat("yyyyMMddHHmmssSSSz");
+            sdf = new SimpleDateFormat("yyyyMMddHHmmssSSSz", Locale.US);
             sdf.setTimeZone(new SimpleTimeZone(0, "Z"));
         } else {
-            sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS", Locale.US);
             sdf.setTimeZone(new SimpleTimeZone(0, TimeZone.getDefault().getID()));
         }
 
@@ -82,7 +83,7 @@ public class Asn1GeneralizedTime extends Asn1Simple<Date> {
     @Override
     protected void toBytes() {
         Date date = getValue();
-        SimpleDateFormat dateF = new SimpleDateFormat("yyyyMMddHHmmss'Z'");
+        SimpleDateFormat dateF = new SimpleDateFormat("yyyyMMddHHmmss'Z'", Locale.US);
         dateF.setTimeZone(new SimpleTimeZone(0, "Z"));
 
         String str = dateF.format(date);
diff --git a/kerby-common/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1UtcTime.java b/kerby-common/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1UtcTime.java
index 3c048f09..9a0b2a1d 100644
--- a/kerby-common/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1UtcTime.java
+++ b/kerby-common/kerby-asn1/src/main/java/org/apache/kerby/asn1/type/Asn1UtcTime.java
@@ -26,6 +26,7 @@ import java.nio.charset.StandardCharsets;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
 import java.util.SimpleTimeZone;
 
 /**
@@ -68,7 +69,7 @@ public class Asn1UtcTime extends Asn1Simple<Date> {
             throw new IllegalArgumentException("Bad utc time string " + dateStr);
         }
 
-        SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmssZ");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmssZ", Locale.US);
         sdf.setTimeZone(new SimpleTimeZone(0, "Z"));
         try {
             setValue(sdf.parse(fixedDateStr));
@@ -80,7 +81,7 @@ public class Asn1UtcTime extends Asn1Simple<Date> {
     @Override
     protected void toBytes() {
         Date date = getValue();
-        SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss'Z'");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss'Z'", Locale.US);
         sdf.setTimeZone(new SimpleTimeZone(0, "Z"));
 
         String str = sdf.format(date);
diff --git a/kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1UtcTimeTest.java b/kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1GeneralizedTimeTest.java
similarity index 56%
copy from kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1UtcTimeTest.java
copy to kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1GeneralizedTimeTest.java
index 271abff8..8e7bc227 100644
--- a/kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1UtcTimeTest.java
+++ b/kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1GeneralizedTimeTest.java
@@ -19,54 +19,52 @@
  */
 package org.apache.kerby.asn1;
 
-import org.apache.kerby.asn1.type.Asn1UtcTime;
+import org.apache.kerby.asn1.type.Asn1GeneralizedTime;
 import org.apache.kerby.asn1.util.HexUtil;
 import org.junit.Test;
 
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
 import java.util.SimpleTimeZone;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-public class Asn1UtcTimeTest {
+public class Asn1GeneralizedTimeTest {
 
     @Test
     public void testEncoding() throws Exception {
-        /**
-         * Cryptography for Developers -> ASN.1 UTCTIME Type
-         * the encoding of July 4, 2003 at 11:33 and 28 seconds would be
-         ā€œ030704113328Zā€ and be encoded as 0x17 0D 30 33 30 37 30 34 31 31 33 33 32 38 5A.
-         */
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
         sdf.setTimeZone(new SimpleTimeZone(0, "Z"));
-        String dateInString = "2003-07-04 11:33:28";
+        String dateInString = "2003070113328000";
         Date date = sdf.parse(dateInString);
-        testEncodingWith(date, "0x17 0D 30 33 30 37 30 34 31 31 33 33 32 38 5A");
+        testEncodingWith(date, "0x18 0F 32 30 30 33 30 37 30 31 31 33 33 33 32 30 5A");
+    }
+
+    // https://issues.apache.org/jira/browse/DIRKRB-747
+    @Test
+    public void testEncodingNonASCIILocale() throws Exception {
+        Locale existingLocale = Locale.getDefault();
+        try {
+            Locale.setDefault(new Locale("mni", "IN", "Beng"));
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            sdf.setTimeZone(new SimpleTimeZone(0, "Z"));
+            String dateInString = "2003070113328000";
+            Date date = sdf.parse(dateInString);
+            testEncodingWith(date, "0x18 0F 32 30 30 33 30 37 30 31 31 33 33 33 32 30 5A");
+        } finally {
+            Locale.setDefault(existingLocale);
+        }
     }
 
     private void testEncodingWith(Date value, String expectedEncoding) throws IOException {
         byte[] expected = HexUtil.hex2bytesFriendly(expectedEncoding);
-        Asn1UtcTime aValue = new Asn1UtcTime(value);
+        Asn1GeneralizedTime aValue = new Asn1GeneralizedTime(value);
         aValue.useDER();
         byte[] encodingBytes = aValue.encode();
         assertThat(encodingBytes).isEqualTo(expected);
     }
 
-    @Test
-    public void testDecoding() throws Exception {
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        String dateInString = "2003-07-04 11:33:28";
-        sdf.setTimeZone(new SimpleTimeZone(0, "Z"));
-        Date date = sdf.parse(dateInString);
-        testDecodingWith(date, "0x17 0D 30 33 30 37 30 34 31 31 33 33 32 38 5A");
-    }
 
-    private void testDecodingWith(Date expectedValue, String content) throws IOException {
-        Asn1UtcTime decoded = new Asn1UtcTime();
-        decoded.useDER();
-        decoded.decode(HexUtil.hex2bytesFriendly(content));
-        assertThat(decoded.getValue()).isEqualTo(expectedValue);
-    }
 }
diff --git a/kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1UtcTimeTest.java b/kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1UtcTimeTest.java
index 271abff8..abede6d9 100644
--- a/kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1UtcTimeTest.java
+++ b/kerby-common/kerby-asn1/src/test/java/org/apache/kerby/asn1/Asn1UtcTimeTest.java
@@ -26,6 +26,7 @@ import org.junit.Test;
 import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.Locale;
 import java.util.SimpleTimeZone;
 
 import static org.assertj.core.api.Assertions.assertThat;
@@ -46,6 +47,27 @@ public class Asn1UtcTimeTest {
         testEncodingWith(date, "0x17 0D 30 33 30 37 30 34 31 31 33 33 32 38 5A");
     }
 
+    // https://issues.apache.org/jira/browse/DIRKRB-747
+    @Test
+    public void testEncodingNonASCIILocale() throws Exception {
+        /**
+         * Cryptography for Developers -> ASN.1 UTCTIME Type
+         * the encoding of July 4, 2003 at 11:33 and 28 seconds would be
+         ā€œ030704113328Zā€ and be encoded as 0x17 0D 30 33 30 37 30 34 31 31 33 33 32 38 5A.
+         */
+        Locale existingLocale = Locale.getDefault();
+        try {
+            Locale.setDefault(new Locale("mni", "IN", "Beng"));
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            sdf.setTimeZone(new SimpleTimeZone(0, "Z"));
+            String dateInString = "2003-07-04 11:33:28";
+            Date date = sdf.parse(dateInString);
+            testEncodingWith(date, "0x17 0D 30 33 30 37 30 34 31 31 33 33 32 38 5A");
+        } finally {
+            Locale.setDefault(existingLocale);
+        }
+    }
+
     private void testEncodingWith(Date value, String expectedEncoding) throws IOException {
         byte[] expected = HexUtil.hex2bytesFriendly(expectedEncoding);
         Asn1UtcTime aValue = new Asn1UtcTime(value);
diff --git a/kerby-common/kerby-util/src/main/java/org/apache/kerby/KOptions.java b/kerby-common/kerby-util/src/main/java/org/apache/kerby/KOptions.java
index d564f436..02b04974 100644
--- a/kerby-common/kerby-util/src/main/java/org/apache/kerby/KOptions.java
+++ b/kerby-common/kerby-util/src/main/java/org/apache/kerby/KOptions.java
@@ -23,11 +23,7 @@ import java.io.File;
 import java.text.DateFormat;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -72,7 +68,7 @@ public class KOptions {
         } else if (kt == KOptionType.STR) {
             kopt.setValue(strValue);
         } else if (kt == KOptionType.DATE) {
-            DateFormat df = new SimpleDateFormat("dd/MM/yy:HH:mm:ss");
+            DateFormat df = new SimpleDateFormat("dd/MM/yy:HH:mm:ss", Locale.US);
             Date date = null;
             try {
                 date = df.parse(strValue);
diff --git a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
index 560bfacc..ac51f339 100644
--- a/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
+++ b/kerby-tool/client-tool/src/main/java/org/apache/kerby/kerberos/tool/klist/KlistTool.java
@@ -43,6 +43,7 @@ import java.text.DateFormat;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 
 /**
  * klist like tool
@@ -118,7 +119,7 @@ public class KlistTool {
         if (credentials.isEmpty()) {
             System.out.println("No credential has been cached.");
         } else {
-            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+            DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.US);
 
             System.out.println("Valid starting\t\tExpires\t\t\tService principal");
 
@@ -198,7 +199,7 @@ public class KlistTool {
                 return 0;
             }
             System.out.println(header[outputIndex]);
-            SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss");
+            SimpleDateFormat format = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss", Locale.US);
             Keytab keytab = Keytab.loadKeytab(keytabFile);
             List<PrincipalName> principals = keytab.getPrincipals();
             for (PrincipalName principal : principals) {